У Ruby singleton методи - це методи, які визначаються тільки для одного конкретного об’єкта, незалежно від його класу. Іншими словами, вони є методами екземпляра, які визначаються для конкретного об’єкта, а не для класу в цілому.
Уявіть, що у вас є клас Person
, який має звичайні атрибути, такі як ім’я та вік. Тепер давайте додамо singleton метод до конкретного об’єкта цього класу:
class Person
attr_accessor :name, :age
def initialize(name, age)
@name = name
@age = age
end
end
# Створюємо новий об'єкт типу Person
person = Person.new("John", 25)
# Визначаємо singleton метод для цього об'єкта
def person.introduce
puts "Привіт, мене звуть #{@name} і мені #{@age} років."
end
# Викликаємо singleton метод
person.introduce
У цьому прикладі ми маємо клас Person
, який має атрибути name
і age
. Потім ми створюємо новий об’єкт person
типу Person
і визначаємо для нього singleton метод introduce
. При виклику person.introduce
, ми отримаємо вивід, що представляє об’єкт з конкретним ім’ям та віком.
Цей приклад показує, як можна додавати індивідуальні методи для конкретних об’єктів, не модифікуючи клас в цілому.