我有數組:如何打印數組?
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