【发布时间】:2013-07-11 09:14:36
【问题描述】:
我写了一个简单的方法来检查一个数字是否是Armstrong number。 但是现在我想修改默认的 Number 类放置方法。 所以,我有代码:
def is_an(number)
(number.to_s.split(//).map(&:to_i).inject{|x,y|x+y**(number.size-1)}) == number ? true : false
end
p is_an(153)
我想用它作为方法:153.is_a?
那么,我该怎么做呢?
class Number
def is_an
??? How to use object data over here? ???
end
end
非常感谢阅读。
【问题讨论】:
-
用
self替换公式中的number。 -
或者干脆直接去掉变量名,虽然有时可读性较差
-
我试过了,但是不行。我发现了问题:我必须使用 Fixnum 类,而不是 Number。谢谢。
标签: ruby algorithm class methods