关于:
class Test
class << self
def hi
puts "Hi there"
end
end
我在脑海中想出了以下图像:
因为在 Ruby 中一切都是对象,所以类本身就是 class 的对象Class
。通过调用class << self
您从内部打开Class
定义Test
并注入一些实例方法。由于Test
是 的一个实例Class
,因此您可以像在对象上调用实例方法一样调用这些方法:Test.hi
.
以下是有助于可视化我上一句的伪代码:
class Class
def hi
puts “Hi there”
end
end
Test = Class.new(class Test
end)
Test.hi
我做对了吗?