"Wie können Arrays am besten kombiniert werden?" Diese Frage ist ziemlich vage und kann ein paar verschiedene Dinge bedeuten.
Verkettung bedeutet, eine Sache an eine andere anzuhängen. Beispiel: Verketten der Arrays [1,2,3] und [4,5,6] werde dir geben [1,2,3,4,5,6]. Dies kann in Ruby auf verschiedene Arten geschehen.
Der erste ist der Plus-Operator. Dadurch wird ein Array an das Ende eines anderen angefügt und ein drittes Array mit den Elementen von beiden erstellt.
Alternativ können Sie die concat Methode (der + Operator und die concat Methode sind funktional äquivalent).
Wenn Sie viele dieser Vorgänge ausführen, möchten Sie dies möglicherweise vermeiden. Die Objekterstellung ist nicht kostenlos, und jede dieser Operationen erstellt ein drittes Array. Wenn Sie ein Array an der richtigen Stelle ändern möchten, indem Sie es mit neuen Elementen verlängern, können Sie das verwenden << operator. However, if you try something like this, you'll get an unexpected result.
Anstelle der erwarteten [1,2,3,4,5,6] Array, das wir bekommen [1,2,3, [4,5,6]]. Dies ist sinnvoll. Der Operator "Anhängen" nimmt das Objekt, das Sie ihm geben, und hängt es an das Ende des Arrays an. Es war ihm egal, dass Sie versucht haben, ein anderes Array an das Array anzuhängen. Wir können es also selbst durchlaufen.
Die Welt "kombinieren" kann auch verwendet werden, um die eingestellten Operationen zu beschreiben. Die grundlegenden Mengenoperationen für Schnittmenge, Vereinigung und Differenz sind in Ruby verfügbar. Denken Sie daran, dass "Mengen" eine Menge von Objekten (oder in der Mathematik Zahlen) beschreiben, die in dieser Menge eindeutig sind. Zum Beispiel, wenn Sie eine Set-Operation für das Array ausführen [1,1,2,3] Ruby filtert diese zweite 1 heraus, obwohl 1 in der Ergebnismenge enthalten sein kann. Beachten Sie daher, dass sich diese Mengenoperationen von Listenoperationen unterscheiden. Mengen und Listen sind grundsätzlich verschiedene Dinge.
Sie können die Vereinigung von zwei Sätzen mit der nehmen | Operator. Dies ist der Operator "oder". Befindet sich ein Element in der einen oder der anderen Menge, befindet es sich in der resultierenden Menge. Also das Ergebnis von [1,2,3] | [3,4,5] ist [1,2,3,4,5] (Denken Sie daran, dass es zwar zwei Dreien gibt, dies jedoch eine Mengenoperation und keine Listenoperation ist.).
Der Schnittpunkt zweier Mengen ist eine weitere Möglichkeit, zwei Mengen zu kombinieren. Anstelle einer "oder" -Operation ist der Schnittpunkt zweier Mengen eine "und" -Operation. Die Elemente der Ergebnismenge sind diejenigen in beide setzt. Und als "und" -Operation verwenden wir den & -Operator. Also das Ergebnis von [1,2,3] & [3,4,5] ist einfach [3].
Schließlich besteht eine andere Möglichkeit, zwei Sätze zu "kombinieren", darin, ihren Unterschied zu berücksichtigen. Der Unterschied zwischen zwei Mengen ist die Menge aller Objekte in der ersten Menge nicht im zweiten Satz. So [1,2,3] - [3,4,5] ist [1,2].
Schließlich gibt es "Zippen". Zwei Arrays können auf einzigartige Weise miteinander kombiniert werden. Es ist am besten, es zuerst zu zeigen und danach zu erklären. Das Ergebnis von [1,2,3] .zip ([3,4,5]) ist [[1,3], [2,4], [3,5]]. Also, was ist hier passiert? Die beiden Arrays wurden kombiniert, wobei das erste Element eine Liste aller Elemente an der ersten Position beider Arrays ist. Das Zippen ist etwas seltsam, und Sie werden möglicherweise nicht viel Verwendung dafür finden. Sein Zweck ist es, zwei Arrays zu kombinieren, deren Elemente eng miteinander korrelieren.