У Ruby вираз class << self
використовується для визначення методів класу. Зазвичай це використовується в контексті внутрішньої області видимості (singleton class або eigenclass) для класу. Коли ви використовуєте class << self
, ви переключаєтеся на роботу з самим класом, а не його екземплярами.
Розглянемо приклад:
class MyClass
def self.my_class_method
puts "This is a class method."
end
end
У цьому випадку self.my_class_method
є прикладом методу класу. Однак можна також використовувати class << self
для визначення багатьох методів класу без повторення імені класу:
class MyClass
class << self
def method1
puts "Method 1"
end
def method2
puts "Method 2"
end
end
end
Цей синтаксис дозволяє вам групувати методи класу разом і зручно визначати їх, не вказуючи ім’я класу кожен раз.
PS У Ruby вираз, цей вираз з використанням ключового слова self, призначений для відкриття “singleton-класу” об’єкта.