我开始学习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