我開始學習Ruby和我使用print
,我看到了,它可以使用兩個字符串格式化:紅寶石差異
print "#{var}"
print "%r %d %r" % [var1,var2,var3]
當然之一不同之處在於,第一個參數不需要放置傳遞的參數類型,但我真正想知道的是,哪一個對Ruby更有用,哪些可以提供給我的其他提示。
謝謝。
我開始學習Ruby和我使用print
,我看到了,它可以使用兩個字符串格式化:紅寶石差異
print "#{var}"
print "%r %d %r" % [var1,var2,var3]
當然之一不同之處在於,第一個參數不需要放置傳遞的參數類型,但我真正想知道的是,哪一個對Ruby更有用,哪些可以提供給我的其他提示。
謝謝。
大多數人使用前一種方法,因爲它會自動調用對象的.to_s
方法來顯示值。您可以通過覆蓋班級的.to_s
方法來使用它,以使其顯示任何您想要的內容。
坦率地說,我從來沒有見過我看過的任何代碼中使用的第二種方法。
第二種方法是經典C'printf'風格,在處理數字時非常有用,其中'%d'或'%.1f'經常用於以簡潔易讀的格式呈現浮點值。 – tadman 2013-02-26 22:23:26
「printf」或「sprintf」格式對於任何格式化輸出,列式報告都非常有用。我經常在輸出編號結果時使用它。 – 2013-02-26 23:10:45
我在https://github.com/stympy/faker/blob/master/lib/faker/company.rb#L24中遇到了第二種方法,它用於添加前導零。 – Bulwersator 2014-01-18 15:41:55
第一種不是格式化,它將一個變量插入到字符串中,在你的例子中,這是浪費CPU週期,因爲'print var'會完成同樣的事情,只會更快。 – 2013-02-26 23:08:51