0

私は配列を持っています:

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

私はそれを繰り返して印刷したいので、次のようになります: foo bar quux、or['foo', 'bar', 'quux']を使用した場合はそうではありません。eachfor

注:example[0];example[1]配列の長さが可変であるため、単に行うことはできません。

どうすればいいですか?

4

4 に答える 4

10

ここ:

puts array.join(' ') # The string contains one space
于 2012-04-11T23:12:42.547 に答える
5
example.join(" ") #=> foo bar quux.
于 2012-04-11T23:12:51.380 に答える
1

each以前は印刷していた場合は、正常に機能します。

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

ただし、必要なのがスペースで区切られた項目を含む文字列である場合、それがjoinメソッドの目的です。

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

あなたの問題はeach、元の配列を返すだけなので、印刷と反復を混同していることだと思います。その中に物を印刷したい場合は、上記の例のように実際に印刷する必要があります。

于 2012-04-11T23:13:50.617 に答える
0

それらが互いの下に印刷される可能性がある場合は、単に使用してください

puts example

=> 
foo
bar
quux

それ以外の場合は、他の回答のソリューションを使用してください

puts example.join(" ")
于 2012-04-11T23:31:25.780 に答える