我有这堂课:
class Option
# ORM's properties
def self.get( id )
# some ORM action
"result of #{id}"
end
end
我可以打电话Option.get :setting
来接收结果。Option(:setting)
如果我想调用like in String(42)
(返回"42"
)以获得与 相同的结果,我该如何编写类Option#get
?
String
实际上是内核模块中的一个方法:
字符串(arg) → 字符串
通过调用其方法将arg转换为 a 。
String
to_s
您会在同一个地方找到Array
、和朋友。Float
内核包含在 Object 中,这就是所有像普通全局函数一样使用的方法所在的地方。你可以猴子补丁内核:
module Kernel
def Option(id)
Option.get(id)
end
end
或者用这样的方法制作你自己的模块,如果他们想访问say,让人们包含它Option(11)
。