我为 Enumerables 模块编写了代码:
module Enumerables
def palindrome?
if self.is_a?(Hash)
return false
else
self.join('').gsub(/\W/,"").downcase == self.join('').gsub(/\W/,"").downcase.reverse
end
end
end
问题是,我必须写这些:
class Array
include Enumerables
end
class Hash
include Enumerables
end
使代码运行成功。
有没有简单的方法来制作“回文”?使用不同实例类型运行的方法?
最佳答案
模块不是Enumerables
而是Enumerable
所以如果你有
module Enumerable
def palindrome?
...
end
end
它会在没有包含的情况下工作。
如果你想将此方法添加到所有对象,请参阅 texasbruce 的答案。
关于ruby - 如何简单地将一个模块用于不同的类?如(String、Array、Hash),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12905415/