A = Class.new
Это похоже на:
class A
end
Поскольку вы определяете пустой класс и присваиваете ему имя A
.(Примечание: в Ruby принято, что идентификаторы, начинающиеся с заглавной буквы, являются константами.)
class << A
def speak
puts "Dave"
end
end
аналогично:
class A
def A.speak
puts "Dave"
end
end
Здесь вы определяете метод класса для A
(в отличие от метода экземпляра).
Строка:
A.speak
просто вызывает метод класса.
Наконец:
B = A.new
создает экземпляр класса A
и присваивает его константе B
.
Чтобы ответить на другой ваш вопрос.Класс Class
это ... Class
!Вы можете увидеть это в irb
:
irb(main):022:0> Class.class
=> Class