Sådan kombineres arrays i rubin

click fraud protection

"Hvad er den bedste måde at kombinere arrays? "Dette spørgsmål er ganske vagt og kan betyde et par forskellige ting.

sammenkædning

Sammenkædning er at tilføje en ting til en anden. For eksempel at sammenkæde matrixerne [1,2,3] og [4,5,6] vil give dig [1,2,3,4,5,6]. Dette kan gøres på nogle få måder i Rubin.

Den første er plus-operatøren. Dette tilføjes en matrix til slutningen af ​​en anden og skaber et tredje array med elementerne i begge dele.

Brug alternativt concat metode (+ operatoren og concat metoden er funktionelt ækvivalente).

Hvis du laver en masse af disse operationer, kan du muligvis undgå dette. Oprettelse af objekt er ikke gratis, og hver enkelt af disse operationer opretter en tredje matrix. Hvis du vil ændre en matrix på plads, så den bliver længere med nye elementer, kan du bruge <

I stedet for det forventede [1,2,3,4,5,6] matrix vi får [1,2,3,[4,5,6]]. Dette giver mening, at append-operatøren tager det objekt, du giver det, og tilføjer det til slutningen af ​​matrixen. Det vidste eller pleje ikke, at du prøvede at tilføje en anden matrix til arrayet. Så vi kan løbe over det selv.

instagram viewer

Indstil operationer

Verden "kombinere" kan også bruges til at beskrive de indstillede operationer. De grundlæggende sæt operationer ved krydsning, forening og forskel er tilgængelige i Ruby. Husk, at "sæt" beskriver et sæt objekter (eller i matematik, tal), der er unikke i det sæt. For eksempel, hvis du skulle udføre en indstillet handling på matrixen [1,1,2,3] Ruby filtrerer den anden 1 ud, selvom 1 muligvis er i det resulterende sæt. Så vær opmærksom på, at disse indstillede operationer er forskellige end listefunktioner. Sæt og lister er grundlæggende forskellige ting.

Du kan tage foreningen mellem to sæt ved hjælp af | operatør. Dette er operatoren "eller", hvis et element er i det ene eller det andet sæt, er det i det resulterende sæt. Så resultatet af [1,2,3] | [3,4,5] er [1,2,3,4,5] (husk, at selv om der er to trekanter, er dette en indstillet operation, ikke en listefunktion).

Skæringspunktet mellem to sæt er en anden måde at kombinere to sæt på. I stedet for en "eller" operation er krydset mellem to sæt en "og" operation. Elementerne i det resulterende sæt er dem i begge sæt. Og som en "og" operation bruger vi & operatøren. Så resultatet af [1,2,3] & [3,4,5] er simpelthen [3].

Endelig er en anden måde at "kombinere" to sæt på at tage deres forskel. Forskellen mellem to sæt er sættet af alle objekter i det første sæt, der er ikke i det andet sæt. Så [1,2,3] - [3,4,5] er [1,2].

Zipping

Endelig er der "lynlåsning". To matriser kan lynlåses sammen og kombinerer dem på en temmelig unik måde. Det er bedst at bare vise det først og forklare efter. Resultatet af [1,2,3] .zip ([3,4,5]) er [ [1,3], [2,4], [3,5] ]. Så hvad skete der her? De to arrays blev kombineret, hvor det første element var en liste over alle elementer i den første placering af begge arrays. Lynlåsning er lidt af en underlig operation, og du finder måske ikke meget brug for det. Dets formål er at kombinere to matriser, hvis elementer tæt korrelerer.

instagram story viewer