Вони є ключовою частиною об’єктно-орієнтованого підходу Ruby до програмування і використовуються для забезпечення доступу до даних об’єктів.
Особливості використання геттерів в Ruby.
Назви методів: У Ruby геттери зазвичай мають назву, яка відповідає назві змінної, до значення якої ми хочемо отримати доступ. Наприклад, якщо у нас є змінна @name
, геттер для неї буде мати назву name
.
Визначення геттерів: Геттери можуть бути визначені як вручну, так і за допомогою спеціальних ключових слів Ruby, таких як attr_reader
. Використання attr_reader
дозволяє автоматично створювати геттери для одного або декількох полів об’єкта. Наприклад:
class Person
attr_reader :name, :age
def initialize(name, age)
@name = name
@age = age
end
end
person = Person.new("John", 30)
puts person.name # Виведе "John"
Контроль доступу до даних. Геттери дозволяють контролювати, які дані можуть бути отримані з об’єкта. Наприклад, можна додати додаткову логіку до геттера, яка перевіряє умови перед поверненням значення.
class Person
def initialize(name)
@name = name
end
def name
"Name: #{@name.capitalize}" # Додаємо додаткову логіку
end
end
person = Person.new("john")
puts person.name # Виведе "Name: John"
Звернення до геттерів. Геттери можна викликати як ззовні так і всередині класу. Зазвичай вони викликаються, використовуючи ім’я об’єкта, точку та ім’я методу геттера.
person = Person.new("John")
puts person.name # Виведе "John"
Захист від зміни значень. Геттери дозволяють захистити значення від випадкової зміни ззовні. Оскільки геттери лише повертають значення, їх виклик не змінює сам об’єкт.
class Person
def initialize(name)
@name = name
end
def name
@name.freeze # Захищаємо значення від зміни
end
end
person = Person.new("John")
person.name << " Doe" # Зараз видасть помилку, бо об'єкт заморожений
Геттери в Ruby надають зручний спосіб отримання доступу до даних об’єкта та контролю за цим доступом, що допомагає підтримувати чистоту та безпеку коду.