Ruby on rails 打印+每个()块-为什么连接不起作用?
我期待这个输出:Ruby on rails 打印+每个()块-为什么连接不起作用?,ruby-on-rails,ruby,syntax,Ruby On Rails,Ruby,Syntax,我期待这个输出: output:xyz 但如果我键入以下内容: a = ["x", "y", "z"] print "output:" + a.each {|i| print i}.to_s 为什么在单词output之前和之后都有“xyz” xyzoutput:xyz 在irb中: >> %w{x y z}.each {|i| i } => ["x", "y", "z"] 对每个对象的调用的返回值是调用它的可枚举对象。所以,您基本上是打印出要传递给每个元素的块中数组的
output:xyz
但如果我键入以下内容:
a = ["x", "y", "z"]
print "output:" + a.each {|i| print i}.to_s
为什么在单词output之前和之后都有“xyz”
xyzoutput:xyz
在irb中:
>> %w{x y z}.each {|i| i }
=> ["x", "y", "z"]
对每个对象的调用的返回值是调用它的可枚举对象。所以,您基本上是打印出要传递给每个元素的块中数组的每个元素,然后将数组转换为字符串并再次打印,并将其和字符串输出连接起来:。在irb中:
>> %w{x y z}.each {|i| i }
=> ["x", "y", "z"]
对每个对象的调用的返回值是调用它的可枚举对象。所以,您基本上是打印出要传递给每个元素的块中数组的每个元素,然后将数组转换为字符串并再次打印,并将其和字符串输出连接起来:。这里可能需要的是:
puts "output: #{a.join}"
或者,更详细地说,如果想法通过这种方式更清晰:
puts "output: #{a.map {|element| element.to_s}.join}"
也许你想要的是:
puts "output: #{a.join}"
或者,更详细地说,如果想法通过这种方式更清晰:
puts "output: #{a.map {|element| element.to_s}.join}"