为什么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。
答案 0 :(得分:6)
sprintf
返回格式化的字符串,而不是将其打印到任何地方。查看http://ruby-doc.org/core/Kernel.html#method-i-sprintf以获取文档。
您可能正在寻找printf
。