我有数组:如何打印数组?
example = ['foo', 'bar', 'quux']
我想遍历并打印它,所以它出来,如:foo bar quux
,不['foo', 'bar', 'quux']
如果我用each
或for
这将是这种情况。
注意:我不能这样做:example[0];example[1]
等,因为数组的长度是可变的。
我如何做到这一点?
我有数组:如何打印数组?
example = ['foo', 'bar', 'quux']
我想遍历并打印它,所以它出来,如:foo bar quux
,不['foo', 'bar', 'quux']
如果我用each
或for
这将是这种情况。
注意:我不能这样做:example[0];example[1]
等,因为数组的长度是可变的。
我如何做到这一点?
这里:
puts array.join(' ') # The string contains one space
example.join(" ") #=> foo bar quux.
如果使用each
打印,这将很好地工作:
example.each {|item| print item; print " " } #=> foo bar quux
但是,如果你想要的是用空格分隔的项目的字符串,这就是join
方法的用途:
example.join(' ') #=> "foo bar quux"
我怀疑你的问题是你打印与迭代混淆,因为each
只是返回原始数组 - 如果你想要在它内部打印的东西,你需要像我在上面的例子那样实际打印。
为什么不只是'打印项目+''或'打印'#{item}“'? – 2012-04-11 23:14:36
@HunterMcMillen:因为我想做非常明确的事情,而不是引入像字符串插值这样的额外概念。匿名对基础知识似乎没有很强的把握,所以我不想在他/她身上抛出更多的概念。 – Chuck 2012-04-11 23:16:40
如果它们可以在彼此下方被打印只是使用
puts example
=>
foo
bar
quux
从其他的答案以其他方式使用的解决方案
puts example.join(" ")
也可以用'把阵列*'“' - 当阵列被乘以通过一个字符串,它执行一个连接。 – Jonathan 2012-04-12 01:02:11
真的吗?凉!我不知道。 'join()'虽然有点清晰。 – Linuxios 2012-04-12 02:47:17