Sprintf与Puts in Ruby

时间:2018-02-28 17:36:45

标签: ruby

为什么sprintf不会在函数中输出,但puts会输出?

irb(main):001:0> 3.times {|i| sprintf("%s", i.to_s)}
=> 3
irb(main):002:0> 3.times {|i| puts i}
0
1
2
=> 3

documentation for puts说它是stdout。为什么sprintf也不会去stdout?

使用Ruby 2.5.0。

1 个答案:

答案 0 :(得分:6)

sprintf返回格式化的字符串,而不是将其打印到任何地方。查看http://ruby-doc.org/core/Kernel.html#method-i-sprintf以获取文档。

您可能正在寻找printf