正如问题所问,是否只是在嵌入式表达式的返回值上调用to_s
?
喜欢这个吗?
"1, 2, #{1 + 2}" == "1, 2, " + 3.to_s
或者还有更多的事情发生在这里吗?
答案 0 :(得分:6)
是的,它会对表达式的结果调用to_s
。试试吧。
:001> class Monkey
:002> def to_s
:003> "monkey"
:004> end
:005> end
=> nil
:006> m = Monkey.new
=> monkey
:007> "I am a #{m}"
=> "I am a monkey"
答案 1 :(得分:2)
这真的只是一个占位符说,“嘿,这里我们有一些需要评估的ruby代码并转换为字符串。”如果您熟悉C风格的语言,它几乎与:
相同printf("1, 2, %d", 1+2);