Cum să combinați Array-urile în Rubin

click fraud protection

„Care este cel mai bun mod de a combina matrice? "Această întrebare este destul de vagă și poate însemna câteva lucruri diferite.

înlănțuire

Concatenarea este să aplici un lucru la altul. De exemplu, concatenarea tablourilor [1,2,3] și [4,5,6] iti voi da [1,2,3,4,5,6]. Acest lucru se poate face în câteva moduri în Rubin.

Primul este operatorul plus. Acest lucru va adăuga unul mulțime până la sfârșitul altuia, creând un al treilea tablou cu elementele ambelor.

Alternativ, utilizați butonul concat metoda (operatorul + și metoda concat sunt echivalente funcțional).

Dacă efectuați o mulțime de aceste operațiuni, poate doriți să evitați acest lucru. Crearea obiectelor nu este gratuită și fiecare dintre aceste operațiuni creează un al treilea tablou. Dacă doriți să modificați un tablou în loc, făcându-l mai lung cu elemente noi, puteți utiliza << operator. Cu toate acestea, dacă încercați așa ceva, veți obține un rezultat neașteptat.

În locul celor așteptate [1,2,3,4,5,6] matricea pe care o obținem

instagram viewer
[1,2,3,[4,5,6]]. Acest lucru are sens, operatorul de anexă ia obiectul pe care îl oferiți și îl anexează la sfârșitul tabloului. Nu știa sau nu-i păsa că ați încercat să adăugați un alt tablou la tablou. Deci, putem să ne bucurăm de noi.

Setați operațiuni

Lumea „combina” poate fi de asemenea folosită pentru a descrie operațiunile setate. Operațiunile de bază de intersecție, unire și diferență sunt disponibile în Ruby. Nu uitați că „seturile” descriu un set de obiecte (sau în matematică, numere) care sunt unice în acel set. De exemplu, dacă ar trebui să efectuați o operație setată pe tablou [1,1,2,3] Ruby va filtra acel al doilea 1, chiar dacă 1 poate fi în setul rezultat. Așadar, fiți conștienți că aceste operațiuni setate sunt diferite de cele de listă. Seturile și listele sunt lucruri fundamental diferite.

Puteți lua uniunea a două seturi folosind funcția | operator. Acesta este operatorul „sau”, dacă un element se află într-un set sau altul, este în setul rezultat. Deci rezultatul [1,2,3] | [3,4,5] este [1,2,3,4,5] (amintiți-vă că, deși există două fire, aceasta este o operație setată, nu o operație de listă).

Intersecția a două seturi este o altă modalitate de a combina două seturi. În locul unei operații „sau”, intersecția a două seturi este o operație „și”. Elementele setului rezultat sunt cele din ambii seturi. Și, fiind o operațiune „și”, folosim operatorul &. Deci rezultatul [1,2,3] & [3,4,5] este pur și simplu [3].

În cele din urmă, un alt mod de a „combina” două seturi este să le luați diferența. Diferența a două seturi este ansamblul tuturor obiectelor din primul set care este nu în al doilea set. Asa de [1,2,3] - [3,4,5] este [1,2].

arhivează

În cele din urmă, există „fermoare”. Două tablouri pot fi închise împreună combinându-le într-un mod destul de unic. Cel mai bine este să-l arăți doar primul și să explici după. Rezultatul [1,2,3] .zip ([3,4,5]) este [ [1,3], [2,4], [3,5] ]. Ce s-a întâmplat aici? Cele două tablouri au fost combinate, primul element fiind o listă a tuturor elementelor aflate în prima poziție a ambelor tablouri. Fermoarea este o operație ciudată și este posibil să nu găsești prea mult folos pentru ea. Scopul său este de a combina două tablouri ale căror elemente sunt corelate strâns.

instagram story viewer