我期待这样的输出:
output:xyz
但是如果我输入以下内容:
a = ["x", "y", "z"]
print "output:" + a.each {|i| print i}.to_s
为什么我在单词输出前后都会得到一个“xyz”?
xyzoutput:xyz
最佳答案
在 irb 中:
>> %w{x y z}.each {|i| i }
=> ["x", "y", "z"]
调用 each
的返回值是调用它的 Enumerable
对象。因此,您基本上是在传递给 each
的 block 中打印出数组的每个元素,然后将数组转换为字符串并再次打印,并将其与字符串 “输出:”
。
关于ruby-on-rails - print + each() block - 为什么加入不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/543307/