Ruby — це динамічна, об'єктно-орієнтована мова програмування, яка надає різні вбудовані типи даних для ефективної обробки різних видів даних. Розуміння цих типів даних є ключовим для написання чистого та ефективного коду на Ruby. У цьому блозі ми розглянемо основні типи даних Ruby, їх використання та наочні приклади коду, щоб поглибити ваше розуміння.
1. Числа
Ruby підтримує два основних типи чисел:
- Ціле число (Integer): Цілі числа (наприклад,
42
,-7
) - Число з плаваючою комою (Float): Десяткові числа (наприклад,
3.14
,-0.001
)
Приклади коду:
# Приклад з цілими числами
x = 10
puts x.class # Виведення: Integer
# Приклад з числами з плаваючою комою
y = 3.14
puts y.class # Виведення: Float
# Основні арифметичні операції
puts x + y # Виведення: 13.14
puts x * y # Виведення: 31.4
2.
Рядки
Рядки в Ruby — це послідовності символів, які знаходяться в одинарних або подвійних лапках.
Приклади коду:
# Рядок в одинарних лапках
name = 'Ruby'
# Рядок в подвійних лапках
welcome_message = "Welcome to #{name}!"
puts welcome_message # Виведення: Welcome to Ruby!
# Методи для роботи з рядками
puts name.upcase # Виведення: RUBY
puts name.length # Виведення: 4
puts name.include?("R") # Виведення: true
3. Символи
Символи — це незмінні, унікальні ідентифікатори, які часто використовуються як ключі в хешах.
Приклади коду:
# Визначення символу
:my_symbol
# Символи як ключі в хешах
person = { name: "Alice", age: 25 }
puts person[:name] # Виведення: Alice
Чому використовувати символи? Символи є більш ефективними за пам'яттю, ніж рядки, коли використовуються як ключі в хешах.
4.
Масиви
Масиви — це впорядковані колекції елементів з індексацією.
Приклади коду:
# Створення масиву
fruits = ["apple", "banana", "cherry"]
# Доступ до елементів
puts fruits[0] # Виведення: apple
puts fruits[-1] # Виведення: cherry
# Методи для масивів
fruits.push("date")
puts fruits.inspect # Виведення: ["apple", "banana", "cherry", "date"]
5. Хеші
Хеші — це колекції пар ключ-значення.
Приклади коду:
# Створення хешу
person = { name: "Bob", age: 30 }
# Доступ до значень
puts person[:name] # Виведення: Bob
# Додавання нової пари ключ-значення
person[:city] = "New York"
puts person.inspect # Виведення: {:name=>"Bob", :age=>30, :city=>"New York"}
6. Булеві значення
Ruby використовує true
і false
для представлення булевих значень.
Приклади коду:
# Булеві значення
is_ruby_fun = true
is_java_fun = false
# Булева логіка
puts is_ruby_fun && is_java_fun # Виведення: false
puts is_ruby_fun || is_java_fun # Виведення: true
7.
Nil
nil
представляє відсутність значення або "ніщо" в Ruby.
Приклади коду:
# Значення nil
nothing = nil
puts nothing.nil? # Виведення: true
8. Діапазони
Діапазони представляють послідовності з початковим і кінцевим значенням.
Приклади коду:
# Числовий діапазон
range = (1..5)
range.each { |n| print n } # Виведення: 12345
# Алфавітний діапазон
letters = ("a".."e")
puts letters.to_a.inspect # Виведення: ["a", "b", "c", "d", "e"]
9. Час
Клас Time
в Ruby використовується для представлення дат і часу.
Приклади коду:
# Поточний час
now = Time.now
puts now # Виведення: Поточна дата і час
# Конкретний час
time = Time.new(2024, 12, 31, 23, 59, 59)
puts time # Виведення: 2024-12-31 23:59:59
10.
Procs та Lambdas
Procs та lambdas — це замикання в Ruby, які використовуються для інкапсуляції блоків коду.
Приклади коду:
# Визначення proc
my_proc = Proc.new { |x| puts x * 2 }
my_proc.call(3) # Виведення: 6
# Визначення lambda
my_lambda = ->(x) { puts x * 2 }
my_lambda.call(4) # Виведення: 8
Висновок
Ruby надає багатий набір типів даних, кожен з яких призначений для конкретних випадків використання. Розуміння цих типів даних та їх методів може допомогти вам писати більш виразний та ефективний код на Ruby. Практикуйте ці приклади, щоб краще освоїти динамічну та потужну природу Ruby!
Перекладено з: Mastering Ruby Data Types: A Complete Guide with Code Examples