在 C# 中工作时,我发现创建扩展方法非常方便。在 Ruby 中,可能看起来像:
class Fixnum
is_divisible? divisor
self % divisor == 0
end
end
但我没有看到人们以这种方式扩展内置类型。
非扩展方式是:
def is_divisible? dividend, divisor
dividend % divisor == 0
end
在我看来,第二种方式更难阅读 ( is_divisible?(i, 5)
) 与i.is_divisible? 5
. 甚至,i.is_divisible_by? 5
.
有没有更雄辩的 Ruby 风格的方式来做这种事情?还是第一种方法是首选方法?