2

質問が尋ねるようにto_s、埋め込まれた式の戻り値を呼び出すだけですか?

このような?

"1, 2, #{1 + 2}" == "1, 2, " + 3.to_s

それとも、ここでさらに進行中ですか?

4

2 に答える 2

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" 
于 2012-08-14T15:43:03.377 に答える
2

これは実際には、「評価して文字列としてキャストする必要がある ruby​​ コードがいくつかあります」という単なるプレースホルダーです。C スタイルの言語に少しでも精通している場合は、次のようなものとほとんど同じです。

printf("1, 2, %d", 1+2);
于 2012-08-14T15:43:15.273 に答える