Ich initialisiere ein Array folgendermaßen:
array = Array.new
array << '1' << '2' << '3'
Ist das in einem Schritt möglich? Wenn das so ist, wie?
ruby
arrays
initialization
user502052
quelle
quelle
array = Array.new << 1 << 2 << 3
;)1
zu'1'
.Antworten:
Sie können ein Array-Literal verwenden:
Sie können auch einen Bereich verwenden:
Für Arrays von durch Leerzeichen getrennten Zeichenfolgen können Sie die Percent String-Syntax verwenden :
Sie können auch einen Block übergeben,
Array.new
um den Wert für jeden Eintrag zu bestimmen:Beachten Sie auch, dass Sie in Ruby 1.8.7+ Enumeratoren verwenden können, um Arrays zu erstellen, obwohl nicht das gleiche Array aus drei Zeichenfolgen wie in den anderen obigen Antworten erstellt wird. beispielsweise:
quelle
to_a
([*'1'..'3']
).Array[ "1","2","3"] #=> ["1","2","3"]
(Ich glaube, diese Methode hat nichts mit dem Array-Literal-Konstruktor zu tun.) Sie können auch das Kernel # Array der obersten Ebene verwenden (Methodenname sieht aus wie ein Klassenname)Array(1..5) #=> [1,2,3,4,5]
Einzeiler:
oder
oder
oder
oder
quelle
[1,2,3]
einer einzelnen Initialisierung. Deiner ist mehr Charaktere. Außerdem haben Sie ein Array von Fixnums erstellt, während das OP nach einem Array von Zeichenfolgen gefragt hat.Zusammen mit den obigen Antworten können Sie dies auch tun
quelle
>> [*?1..?5] #=> ["1", "2", "3", "4", "5"]
.Mehr als zu beweisen , gibt es
OneSix Ways To Do It:Wenn 1.Methode (: +) nicht möglich wäre, könnten Sie dies auch tun
Sicher, es ist in diesem Szenario übertrieben, aber wenn
plus_1
es sich um einen wirklich langen Ausdruck handelt, möchten Sie ihn möglicherweise in eine separate Zeile von der Array-Erstellung einfügen.quelle
Du kannst tun
Wie andere angemerkt haben, können Sie ein Array auch mit der% w-Notation wie folgt initialisieren:
oder
Bitte beachten Sie, dass in beiden Fällen jedes Element eine Zeichenfolge und keine Ganzzahl ist. Wenn Sie also ein Array möchten, dessen Elemente Ganzzahlen sind, sollten Sie nicht jedes Element mit Apostrophen umschließen:
Außerdem müssen Sie kein Komma zwischen die Elemente setzen (was erforderlich ist, wenn Sie ein Array ohne diese% w-Notation erstellen). Wenn Sie dies tun (was ich oft versehentlich getan habe), wie in:
seine Elemente werden drei Zeichenfolgen sein ---- "1", "2", "3". Wenn Sie dies tun:
Die Ausgabe lautet:
Das ist nicht das, was wir hier wollen.
Hoffe das hilft den Punkt zu klären!
quelle
So erstellen Sie ein solches Array:
quelle
Wenn Sie ein Array von Zeichenfolgen haben, können Sie es auch folgendermaßen initialisieren:
array = %w{1 2 3}
Trennen Sie einfach jedes Element mit einem Leerzeichen
quelle
Sie können ein Array in einem Schritt initialisieren, indem Sie die Elemente
[]
wie folgt schreiben :quelle
Sie können dies einfach mit
%w
Notation in Ruby-Arrays tun .Es werden die Array-Werte 1,2,3 zum Array hinzugefügt und die Ausgabe als gedruckt
["1", "2", "3"]
quelle