"Mikä on paras tapa yhdistää taulukot? "Tämä kysymys on melko epämääräinen ja voi tarkoittaa muutama eri asia.
ketju
Liittäminen on liittää yksi asia toiseen. Esimerkiksi ryhmien ketjuttaminen [1,2,3] ja [4,5,6] antaa sinulle [1,2,3,4,5,6]. Tämä voidaan tehdä muutamalla tavalla Rubiini.
Ensimmäinen on plus-operaattori. Tämä lisää yhden ryhmä toisen päähän, luomalla kolmannen taulukon molempien elementeillä.
Vaihtoehtoisesti voit käyttää concat menetelmä (+ operaattori ja concat-menetelmä ovat toiminnallisesti vastaavat).
Jos teet paljon näitä toimintoja, saatat haluta välttää tämän. Objektin luominen ei ole ilmainen, ja jokainen näistä operaatioista luo kolmannen taulukon. Jos haluat muokata taulukkoa paikallaan, pidentämällä sitä uusilla elementeillä, voit käyttää operaattoria <<. jos kuitenkin kokeilet jotain t saat odottamattoman tuloksen.>
Odotetun sijasta [1,2,3,4,5,6] Array saamme [1,2,3,[4,5,6]]. Tämä on järkevää, lisättävä operaattori ottaa objektin, jonka annat sille, ja lisää sen taulukon loppuun. Se ei tiennyt tai välittänyt siitä, että yritit lisätä uuden taulukon taulukkoon. Joten voimme silmukka sen itse.
Aseta toiminnot
Maailman "yhdistelmää" voidaan käyttää myös kuvaamaan asetettuja toimintoja. Perusjoukot, leikkaus, liitos ja ero ovat saatavilla Ruby-muodossa. Muista, että "joukot" kuvaavat joukon esineitä (tai matematiikassa numeroita), jotka ovat ainutlaatuisia kyseisessä joukossa. Esimerkiksi, jos sinun olisi tehtävä asetettu toiminto taulukossa [1,1,2,3] Ruby suodattaa toisen sekunnin 1, vaikkakin 1 voi olla tuloksena olevassa sarjassa. Joten huomaa, että nämä asetetut toiminnot ovat erilaisia kuin luettelotoiminnot. Sarjat ja luettelot ovat perustavanlaatuisesti erilaisia asioita.
Voit ottaa kahden sarjan yhdistelmän käyttämällä | operaattori. Tämä on "tai" operaattori, jos elementti on yhdessä tai toisessa, se on tuloksena olevassa joukossa. Joten tulos [1,2,3] | [3,4,5] On [1,2,3,4,5] (muista, että vaikka niitä on kaksi kolmatta, tämä on asetettu toiminto, ei luettelotoiminto).
Kahden sarjan leikkaus on toinen tapa yhdistää kaksi ryhmää. Operaation "tai" sijasta kahden ryhmän leikkauspiste on "ja" -operaatio. Tuloksena olevan joukon elementit ovat molemmat sarjaa. Ja koska olemme "ja" operaatio, käytämme & operaattoria. Joten tulos [1,2,3] & [3,4,5] on yksinkertaisesti [3].
Lopuksi, toinen tapa "yhdistää" kaksi sarjaa on ottaa ero. Kahden joukon ero on kaikkien ensimmäisessä joukossa olevien objektien joukko, joka on ei toisessa sarjassa. Niin [1,2,3] - [3,4,5] On [1,2].
Pakataan
Viimeinkin on "vetoketju". Kaksi taulukkoa voidaan vetoketju yhdistää ne melko ainutlaatuisella tavalla. On parasta näyttää se ensin ja selittää sen jälkeen. Tulos [1,2,3] zip ([3,4,5]) On [ [1,3], [2,4], [3,5] ]. Joten mitä täällä tapahtui? Kaksi taulukkoa yhdistettiin, ensimmäinen elementti oli luettelo kaikista elementeistä kummankin taulukon ensimmäisessä paikassa. Zippaus on vähän outo toimenpide, josta et ehkä löydä paljon hyötyä. Sen tarkoituksena on yhdistää kaksi taulukkoa, joiden elementit korreloivat tiiviisti.