当在双引号字符串插值中引用对象时,既to_s不会也不会to_str被调用.例如:
# 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>"
Run Code Online (Sandbox Code Playgroud)
我不认为我可以做些什么来赚取回报价值"foo"?
UPDATE
道歉,但这段代码确实有效.另一段代码中的错误.
您看到这些结果的Ruby版本是什么?这对我使用Ruby 1.9.2和1.8.6正常工作:
class Foo
def to_s
'hi mom'
end
end
puts "#{Foo.new}"
#=> hi mom
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4042 次 |
| 最近记录: |