2012-04-11 99 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(" ")