var = 5
puts "Method #1: #{var}"
puts "Method #2: %d" % var
私は、それぞれの方法に利点と欠点がある場合は、それを探しています。putコマンドを使用する2つの方法の違いは何ですか?
var = 5
puts "Method #1: #{var}"
puts "Method #2: %d" % var
私は、それぞれの方法に利点と欠点がある場合は、それを探しています。putコマンドを使用する2つの方法の違いは何ですか?
最初の文字列は単純な文字列補間で、2番目の文字列はKernel#sprintfの構文的な砂糖です。
可変データを含む文字列を生成する必要がある場合は、最初の文字列を使用します。 2番目の方法は、変数を文字列に入れるだけでなく、特殊な書式設定が必要な場合に適しています。最初のものはパフォーマンスが優れているので、特殊な書式が必要な場合を除き、そうすることができます。
"hello #{var}"
は、"hello " + var
よりはるかに高速です。
これは "sprintfの構文的な砂糖"ではありませんが、 'String#%'メソッドです。 – Phrogz
あなたが 'puts'を使っているという事実は無関係であることに注意してください。これらはどちらも' puts'のない完全に有効な式です。 –
私はそれを実現しました。 'puts'キーワードよりも、文字列の書式設定/操作に関係します。 – stanigator
Yup、前者は普通の文字列補間であり、後者は実際には[String on method](http://ruby-doc.org/core-1.9.3/String.html#method-i-25)です。 –