當在雙引號字符串內插中引用對象時,to_s
和to_str
都不會被調用。例如:有沒有辦法用一個方法來重寫Ruby的默認字符串插值行爲?
# UPDATE: This example actually works as expected. See update below.
class Foo
def to_s
'foo'
end
def to_str
to_s
end
end
"#{Foo.new}" # result: "#<Foo:0x007fb115c512a0>"
我不認爲有什麼東西我可以做,使返回值"foo"
?
UPDATE
道歉,但是這個代碼實際工作。另一段代碼中的錯誤。
即使它是基於錯誤的信息,這個問題本身也提供了一些很好的價值,人們不知道'to_s'誰做的。所以......做得好! :) – Phrogz 2012-03-14 00:54:50