Hogyan kombináljuk a tömböket a Rubinban

"Mi a legjobb módszer az egyesítésre tömbök? "Ez a kérdés meglehetősen homályos, és néhány különféle dolgot jelenthet.

láncolat

Az összekapcsolás az, hogy az egyik dolgot a másikhoz csatoljuk. Például a tömbök összefűzése [1,2,3] és [4,5,6] ad neked [1,2,3,4,5,6]. Ez néhány módon megtehető Rubin.

Az első a plusz operátor. Ez hozzá fog csatolni sor egy másik végéig, létrehozva egy harmadik tömböt mindkét elemmel.

Alternatív megoldásként használja a concat módszer (a + operátor és a concat módszer funkcionálisan egyenértékű).

Ha sok ilyen műveletet elvégzel, érdemes lehet ezt elkerülni. Objektum létrehozása nem ingyenes, és ezen műveletek mindegyike létrehoz egy harmadik tömböt. Ha módosítani akar egy tömböt a helyén, új elemekkel hosszabbítva, akkor használhatja a << operátort. Ha azonban kipróbál valami ilyesmit, váratlan eredményt kap.

A várt helyett [1,2,3,4,5,6] tömb kapunk [1,2,3,[4,5,6]]. Ennek van értelme, az append operátor veszi az általad megadott objektumot, és hozzáfűzi a tömb végéhez. Nem tudta, nem érdekli, hogy megpróbált egy új tömböt csatolni a tömbhöz. Tehát mi magunk is áthúzhatjuk.

instagram viewer

Állítsa be a műveleteket

A kombinált világ felhasználható a beállított műveletek leírására. Az metszéspont, az unió és a különbség alapvető műveletei Ruby-ban érhetők el. Ne feledje, hogy a "halmazok" egy objektumkészletet (vagy a matematikában a számokat) írnak le, amelyek az adott halmazban egyediek. Például, ha beállított műveletet hajt végre a tömbön [1,1,2,3] Ruby kiszűri azt a második 1-et, annak ellenére, hogy 1 lehet a kapott készletben. Tehát vegye figyelembe, hogy ezek a beállított műveletek különböznek a lista műveletektől. A készletek és a listák alapvetően különböző dolgok.

A két készlet egyesítésével a | operátor. Ez a "vagy" operátor, ha egy elem egy vagy másik halmazban van, akkor a kapott halmazban van. Tehát az eredménye [1,2,3] | [3,4,5] jelentése [1,2,3,4,5] (ne feledje, hogy annak ellenére, hogy két hármas van, ez egy beállított művelet, nem pedig a listaművelet).

Két készlet metszéspontja egy másik módja annak, hogy két halmazt összekapcsoljuk. "Vagy" művelet helyett a két halmaz metszéspontja egy "és" művelet. A kapott halmaz elemei a mindkét készletek. És mivel "és" művelet, az & operátort használjuk. Tehát az eredménye [1,2,3] & [3,4,5] egyszerűen [3].

Végül, a két készlet „kombinálásának” másik módja az, hogy figyelembe vesszük a különbséget. A két halmaz különbsége az összes objektum halmaza az első halmazban, azaz nem a második sorozatban. Így [1,2,3] - [3,4,5] jelentése [1,2].

tömörítése

Végül van egy "zipping". Két tömb tömöríthető össze, kombinálva őket meglehetősen egyedi módon. A legjobb, ha először csak megmutatja, és utána elmagyarázza. Az eredménye [1,2,3] .zip ([3,4,5]) jelentése [ [1,3], [2,4], [3,5] ]. Mi történt itt? A két tömböt kombináltuk, az első elem a két tömb első helyzetében lévő összes elem listája. A ZIP-fájl kicsit furcsa művelet, és valószínűleg nem talál sok hasznot ehhez. Célja két tömb kombinálása, amelyek elemei szorosan korrelálnak.

instagram story viewer