考虑这个类
class Duck
attr_accessor :name
def initialize(name)
@name = name || 'Donald'
end
# Some quacking methods..
def to_s
"#{@name} (Duck)"
end
end
我希望我的鸭子能够响应 , , 等方法upcase
,sub
所以gsub
我可以这样做
my_duck = Duck.new("Scrooge")
my_duck.upcase
--> "SCROOGE (DUCK)"
除了手动实现这些方法之外,是否有一种巧妙的方法可以挑选出不会自变异的 String 方法并自动让我的类响应这些方法,然后调用to_s
结果字符串上的方法?