Ruby является языком с динамической типизацией, где все типы - объекты. Вот основные типы данных:
Включает несколько подтипов:
42 # Fixnum (для небольших чисел)
9999999999 # Bignum (для больших чисел)
0xFF # Шестнадцатеричное
0b1010 # Двоичное
1_000_000 # С разделителем (для читаемости)
3.14
2.0e5 # Научная нотация (200000.0)
"Hello" # Интерполяция: "Value: #{variable}"
'World' # Без интерполяции
%q{text} # Альтернативный синтаксис
Особенности:
:name # Идентификатор, immutable
:"str sym" # Символ из строки
Используются как ключи в хешах, идентификаторы методов.
true
false
nil # "Отсутствие значения" (тоже false в условиях)
[1, "two", :three] # Гетерогенные элементы
%w[a b c] # Литерал для строковых массивов
Особенности:
{ key: "value" } # Ruby 1.9+ синтаксис
{ :key => "value" } # Классический синтаксис
1..10 # Включительный (10 входит)
1...10 # Исключительный (10 не входит)
'a'..'z'
/\d+/ # Паттерн для цифр
%r{^/path} # Альтернативный синтаксис
nil # Отсутствие значения
self # Текущий объект
Proc # Блок кода (например: -> { puts "lambda" })
Методы для работы с типами:
42.class # => Integer
"str".is_a?(String) # => true
:foo.instance_of?(Symbol) # => true
Основные типы Ruby:
Все типы - объекты с методами. Динамическая типизация позволяет не объявлять типы явно, но требует внимания к преобразованиям.