例如,我想向 class 添加新方法String
。但我不想让这种改变全球化(保持班级清洁很好,是吗?)。
所以,而不是这段代码
class String
def is_palindrome?
self == self.reverse
end
end
module MyModule
class MyClass
def filter_palindrome(str_arr)
str_arr.select { |s| s.is_palindrome? }
end
end
end
我想要这样的东西:
module MyModule
class String
def is_palindrome?
self == self.reverse
end
end
class MyClass
def self.filter_palindrome(str_arr)
str_arr.select { |s| s.is_palindrome? }
end
end
end
但是,当然,它不起作用(undefined method 'is_palindrome?' for :String
)。那么,我想要的有什么意义吗?如果有,实现它的最佳方法是什么?