質問が尋ねるようにto_s
、埋め込まれた式の戻り値を呼び出すだけですか?
このような?
"1, 2, #{1 + 2}" == "1, 2, " + 3.to_s
それとも、ここでさらに進行中ですか?
はい、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"
これは実際には、「評価して文字列としてキャストする必要がある ruby コードがいくつかあります」という単なるプレースホルダーです。C スタイルの言語に少しでも精通している場合は、次のようなものとほとんど同じです。
printf("1, 2, %d", 1+2);