Ako kombinovať polia v Ruby

„Aký je najlepší spôsob kombinovania polí„Táto otázka je dosť nejasná a môže znamenať niekoľko rôznych vecí.

zreťazenie

Zúženie znamená pripojiť jednu vec k druhej. Napríklad zreťazenie polí [1,2,3] a [4,5,6] vám dá [1,2,3,4,5,6]. To sa dá urobiť niekoľkými spôsobmi rubín.

Prvým z nich je operátor plus. Toto sa pripojí rad na koniec druhého vytvorením tretieho poľa s prvkami oboch.

Prípadne použite concat metóda (operátor + a metóda concat sú funkčne rovnocenné).

Ak robíte veľa z týchto operácií, možno by ste sa tomu mali vyhnúť. Vytváranie objektov nie je zadarmo a každá z týchto operácií vytvára tretie pole. Ak chcete upraviť pole na mieste a predĺžiť ho s novými prvkami, môžete použiť operátor <<. ak v vysk nie podobn z neo>

Namiesto očakávania [1,2,3,4,5,6] pole získame [1,2,3,[4,5,6]]. To dáva zmysel, operátor pridania vezme objekt, ktorý mu dáte, a pripojí ho na koniec poľa. Nevedelo ani nezáležalo na tom, že ste sa k poli pokúsili pripojiť ďalšie pole. Takže to dokážeme sami.

Nastavte operácie

Svet „kombinovať“ sa dá použiť aj na opis operácií súpravy. Základné operácie križovatiek, spojení a rozdielov sú k dispozícii v Ruby. Pamätajte, že „množiny“ opisujú množinu objektov (alebo v matematike, čísla), ktoré sú jedinečné v tejto množine. Napríklad, ak ste mali vykonať operáciu množiny v poli

instagram viewer
[1,1,2,3] Ruby odfiltruje druhú 1, aj keď 1 môže byť vo výslednej sade. Majte na pamäti, že tieto operácie sú odlišné od operácií so zoznamom. Sady a zoznamy sú zásadne odlišné veci.

Môžete spojiť dve sady pomocou | operátor. Toto je operátor „alebo“, ak je prvok v jednej množine alebo v druhej, je vo výslednej množine. Takže výsledok [1,2,3] | [3,4,5] je [1,2,3,4,5] (nezabudnite, že aj keď existujú dve trojky, jedná sa o súbor operácií, nie zoznamov).

Priesečník dvoch sád je ďalším spôsobom ako kombinovať dve súpravy. Namiesto operácie „alebo“ je priesečníkom dvoch sád operácia „a“. Prvky výslednej sady sú tie, ktoré sú v oba sety. A ako operácia „a“ používame operátor &. Takže výsledok [1,2,3] & [3,4,5] je jednoducho [3].

Nakoniec ďalším spôsobom, ako „kombinovať“ dve sady, je zmeniť ich rozdiel. Rozdiel dvoch množín je množina všetkých objektov v prvej množine, ktorá je nie v druhej sade. tak [1,2,3] - [3,4,5] je [1,2].

zips

Nakoniec je tu „zips“. Dve polia je možné zipsom spojiť a kombinovať ich pomerne jedinečným spôsobom. Najlepšie je to len ukázať ako prvé a potom vysvetliť. Výsledok [1,2,3] Zip ([3,4,5]) je [ [1,3], [2,4], [3,5] ]. Čo sa tu stalo? Obe polia boli kombinované, pričom prvým prvkom bol zoznam všetkých prvkov v prvej polohe oboch polí. Zips je trochu podivná operácia a možno pre ňu nenájdete veľa užitočného. Jeho účelom je kombinovať dve polia, ktorých prvky úzko korelujú.

instagram story viewer