我第一次进入rails编程,同时看着我下载的一些库的代码,我偶尔会注意到代码:
class << self def func stuff end end
我已经尝试在网络上搜索一个解释,但是<<从最有用的搜索引擎中删除,所以最终只是搜索类自我,这不是很有用.任何见解将不胜感激.
解决方法
在Ruby中,class< foo打开了由foo引用的对象的单例类.在Ruby中,每个对象都有一个与它相关联的单例类,它只有一个实例.这个单例类保存对象特定的行为,即单例方法. 所以,class<自我开辟了单身人士的自我.什么是自我,取决于你所处的上下文,当然.在模块或类定义体中,例如,它是模块或类本身. 如果你正在使用单例类,定义单例方法,实际上有一个快捷方式:def foo.bar. 下面是一个例子,说明如何使用单例方法来提供一些与特定实例没有任何关联的“过程”:
class << (Util = Object.new) def do_something(n) # ... end end Util.do_something(n)