Оволодіння типами даних Ruby: Повний посібник з прикладами коду

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

Leave a Reply

Your email address will not be published. Required fields are marked *