„Jaki jest najlepszy sposób na połączenie tablice? ”To pytanie jest dość niejasne i może oznaczać kilka różnych rzeczy.
Powiązanie
Łączenie polega na dołączaniu jednej rzeczy do drugiej. Na przykład łączenie tablic [1,2,3] i [4,5,6] da tobie [1,2,3,4,5,6]. Można to zrobić na kilka sposobów Rubin.
Pierwszy to operator plus. To doda jeden szyk do końca innego, tworząc trzecią tablicę z elementami obu.
Alternatywnie użyj konkat metoda (operator + i metoda konkat są funkcjonalnie równoważne).
Jeśli wykonujesz wiele z tych operacji, możesz tego uniknąć. Tworzenie obiektu nie jest wolny i każda z tych operacji tworzy trzecią tablicę. Jeśli chcesz zmodyfikować tablicę w miejscu, wydłużając ją o nowe elementy, możesz użyć operatora <<. je jednak spr czego takiego otrzymasz nieoczekiwany wynik.>
Zamiast oczekiwanego [1,2,3,4,5,6] otrzymujemy tablicę [1,2,3,[4,5,6]]. Ma to sens, że operator dołączania bierze podany obiekt i dołącza go do końca tablicy. Nie wiedziałem ani nie obchodziło, że próbujesz dołączyć kolejną tablicę do tablicy. Więc sami możemy się nad tym zapętlić.
Ustaw operacje
Światowe „połączenie” może być również użyte do opisania ustawionych operacji. Podstawowe operacje przecięcia, łączenia i różnicy są dostępne w Rubim. Pamiętaj, że „zestawy” opisują zestaw obiektów (lub w matematyce liczby), które są unikalne w tym zestawie. Na przykład, jeśli miałbyś wykonać operację ustawiania na tablicy [1,1,2,3] Ruby odfiltruje tę drugą 1, nawet jeśli 1 może znajdować się w wynikowym zestawie. Należy więc pamiętać, że te ustawione operacje różnią się od operacji na liście. Zestawy i listy to zasadniczo różne rzeczy.
Możesz wziąć połączenie dwóch zestawów za pomocą | operator. Jest to operator „lub”, jeśli element znajduje się w jednym lub drugim zestawie, to w zestawie wynikowym. Więc wynik [1,2,3] | [3,4,5] jest [1,2,3,4,5] (pamiętaj, że mimo że istnieją trzy trójki, jest to operacja ustawiona, a nie operacja na liście).
Przecięcie dwóch zbiorów jest innym sposobem na połączenie dwóch zbiorów. Zamiast operacji „lub” przecięcie dwóch zbiorów jest operacją „i”. Elementami wynikowego zestawu są te w obie zestawy. Jako operacja „i” używamy operatora &. Więc wynik [1,2,3] & [3,4,5] jest po prostu [3].
Wreszcie, innym sposobem na „połączenie” dwóch zestawów jest przyjęcie ich różnicy. Różnica między dwoma zestawami to zbiór wszystkich obiektów w pierwszym zestawie nie w drugim zestawie. Więc [1,2,3] - [3,4,5] jest [1,2].
Zipping
Wreszcie jest „zipowanie”. Dwie tablice można spiąć razem, łącząc je w dość unikalny sposób. Najlepiej jest to najpierw pokazać, a potem wyjaśnić. Wynik [1,2,3] .zip ([3,4,5]) jest [ [1,3], [2,4], [3,5] ]. Co się tu stało? Obie tablice zostały połączone, przy czym pierwszy element jest listą wszystkich elementów na pierwszej pozycji obu tablic. Zipowanie jest trochę dziwną operacją i może nie być dla niego zbyt przydatne. Jego celem jest połączenie dwóch tablic, których elementy są ze sobą ściśle powiązane.