2012-04-11 79 views
0

我有数组:如何打印数组?

example = ['foo', 'bar', 'quux'] 

我想遍历并打印它,所以它出来,如:foo bar quux,不['foo', 'bar', 'quux']如果我用eachfor这将是这种情况。

注意:我不能这样做:example[0];example[1]等,因为数组的长度是可变的。

我如何做到这一点?

回答

10

这里:

puts array.join(' ') # The string contains one space 
+3

也可以用'把阵列*'“' - 当阵列被乘以通过一个字符串,它执行一个连接。 – Jonathan 2012-04-12 01:02:11

+0

真的吗?凉!我不知道。 'join()'虽然有点清晰。 – Linuxios 2012-04-12 02:47:17

5
example.join(" ") #=> foo bar quux. 
1

如果使用each打印,这将很好地工作:

example.each {|item| print item; print " " } #=> foo bar quux 

但是,如果你想要的是用空格分隔的项目的字符串,这就是join方法的用途:

example.join(' ') #=> "foo bar quux" 

我怀疑你的问题是你打印与迭代混淆,因为each只是返回原始数组 - 如果你想要在它内部打印的东西,你需要像我在上面的例子那样实际打印。

+0

为什么不只是'打印项目+''或'打印'#{item}“'? – 2012-04-11 23:14:36

+0

@HunterMcMillen:因为我想做非常明确的事情,而不是引入像字符串插值这样的额外概念。匿名对基础知识似乎没有很强的把握,所以我不想在他/她身上抛出更多的概念。 – Chuck 2012-04-11 23:16:40

0

如果它们可以在彼此下方被打印只是使用

puts example 

=> 
foo 
bar 
quux 

从其他的答案以其他方式使用的解决方案

puts example.join(" ")