我想向one?
添加Array#size
方法,以便我可以这样说:
class Array
def one?
self.size == 1
end
end
[1].size.one?
#=> true
[1,2].size.one?
#=> false
答案 0 :(得分:6)
如果您看到class
的{{1}},则为[1].size
,因此如果您想在Fixnum
上链接one?
功能,则必须定义对于[1].size
类也是如此,如下所示:
Fixnum
现在,以下内容也有效:
class Fixnum
def one?
self == 1
end
end
答案 1 :(得分:0)
由于size
返回Fixnum,因此必须在那里定义它才能正常工作。
class Fixnum
def one?
self == 1
end
end
[1].size.one?
#=> true
为什么同样的答案?
与其他答案同时发布,因此决定将其搁置。