2012-04-11 11 views
0

Ich habe das Array:Wie drucke ich Arrays?

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

ich über sie iterieren wollen und drucken, so dass es wie kommt: foo bar quux, nicht ['foo', 'bar', 'quux'] was der Fall wäre, wenn ich each oder for verwendet.

Hinweis: Ich kann nicht einfach tun: example[0];example[1], usw., weil die Länge des Arrays variabel ist.

Wie mache ich das?

Antwort

10

hier:

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

auch 'verwenden können, setzt Array * '‚'- wenn Arrays multipliziert werden Durch einen String führt er einen Join aus. – Jonathan

+0

Wirklich? Cool! Das wusste ich nicht. 'join()' ist jedoch etwas übersichtlicher. – Linuxios

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

Wenn Sie each verwendet zu drucken, würde es funktionieren:

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

Wenn jedoch, was Sie wollen einen String mit den Einzelteilen ist durch Leerzeichen getrennt , das ist, was die join Methode ist für:

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

Ich vermute, dass Ihr Problem ist, dass Sie das Drucken mit Iterieren verwirren, da each nur das ursprüngliche Array zurückgibt - wenn Sie Dinge in ihm gedruckt wollen, müssen Sie tatsächlich wie im obigen Beispiel drucken.

+0

warum nicht nur 'print item + ''' oder 'print" # {item} "'? –

+0

@HunterMcMillen: Weil ich wollte, was sehr explizit vorging und keine zusätzlichen Konzepte wie String-Interpolation einführte. Anonymous scheint die Grundlagen nicht gut zu verstehen, also wollte ich nicht noch mehr Konzepte auf ihn/sie werfen. – Chuck

0

, wenn sie untereinander gedruckt werden können, nur

puts example 

=> 
foo 
bar 
quux 

sonst die Lösungen aus den anderen Antworten verwenden verwenden

puts example.join(" ")