1
var = 5
puts "Method #1: #{var}"
puts "Method #2: %d" % var
我在尋找每種方法的優點和缺點,如果有的話。這兩種使用put命令的方法有什麼區別?
var = 5
puts "Method #1: #{var}"
puts "Method #2: %d" % var
我在尋找每種方法的優點和缺點,如果有的話。這兩種使用put命令的方法有什麼區別?
第一個是簡單的字符串插值,第二個是語法糖Kernel#sprintf。
對於只需要生成包含可變數據的字符串的情況,請使用第一種情況。第二種方法更適合於當您需要進行專門格式化而不僅僅是將變量放入字符串中時。第一個將會有更好的性能,所以要這樣做,除非你需要專門的格式。
它出現的情況下,"hello #{var}"
比"hello " + var
快得多。
它不是「sprintf的語法糖」,它是'String#%'方法。 – Phrogz
請注意,您使用'puts'這一事實是無關緊要的,這兩個都是完全有效的表達式,而沒有'puts'。 –
我意識到了。它與字符串格式化/操作有關,而不是'puts'關鍵字,對吧? – stanigator
是的,前者只是普通的字符串插值,後者實際上是一個[字符串方法](http://ruby-doc.org/core-1.9.3/String.html#method-i-25)。 –