Kuidas kombineerida massiive rubiinis

click fraud protection

"Mis on parim viis kombineerimiseks massiivid? "See küsimus on üsna ebamäärane ja võib tähendada mõnda erinevat asja.

Konkaneerimine

Liidestamine on ühe asja lisamine teisele. Näiteks massiivide liitmine [1,2,3] ja [4,5,6] annab sulle [1,2,3,4,5,6]. Seda saab teha mitmel viisil Rubiin.

Esimene on pluss operaator. See lisab ühe massiiv teise lõppu, luues mõlema elemendiga kolmanda massiivi.

Teine võimalus on kasutada nuppu konkreetne meetod (operaator + ja konkusmeetod on funktsionaalselt samaväärsed).

Kui teete palju neid toiminguid, võiksite seda vältida. Objektide loomine pole tasuta ja igaüks neist loob kolmanda massiivi. Kui soovite massiivi oma kohale muuta, saate seda uute elementidega pikemaks muuta, kasutades operaatorit <<. kui proovite midagi sellist saate siiski ootamatu tulemuse.>

Oodatava asemel [1,2,3,4,5,6] array saame [1,2,3,[4,5,6]]. See on loogiline, lisamise operaator võtab objekti, mille te selle annate, ja lisab selle massiivi lõppu. See ei teadnud ega hoolinud sellest, et üritasite massiivile uut massiivi lisada. Nii et me võime sellest ise aru saada.

instagram viewer

Määrake toimingud

Maailma "kombineerida" saab kasutada ka määratud toimingute kirjeldamiseks. Ristmike, ühinemise ja erinevuse põhikomplektid on saadaval rubiinides. Pidage meeles, et "komplektid" kirjeldavad objektide komplekti (või matemaatikas numbreid), mis on selles komplektis ainulaadsed. Näiteks kui peaksite massiivis tegema määratud toimingu [1,1,2,3] Ruby filtreerib selle teise 1 välja, isegi kui tulemuseks olevas komplektis võib olla 1. Seega võtke arvesse, et need määratud toimingud erinevad loenditoimingutest. Komplektid ja loendid on põhimõtteliselt erinevad asjad.

Kahe komplekti liitmiseks võite kasutada nuppu | operaator. See on operaator "või", kui element on ühes või teises komplektis, on see tulemuseks olevas komplektis. Nii et tulemus [1,2,3] | [3,4,5] on [1,2,3,4,5] (pidage meeles, et kuigi neid on kaks kolm, on see määratud toiming, mitte loenditoiming).

Kahe komplekti ristumine on veel üks viis kahe komplekti ühendamiseks. Operatsiooni "või" asemel on kahe komplekti ristumiskoht "ja". Saadud komplekti elemendid on samad mõlemad komplekti. Kuna operatsioon on "ja", kasutame & operaatorit. Nii et tulemus [1,2,3] & [3,4,5] on lihtsalt [3].

Lõpuks on veel üks viis kahe komplekti "ühendamiseks" võtta nende erinevus. Kahe komplekti erinevus on kõigi esimeses komplektis olevate objektide komplekt, mis on mitte teises komplektis. Nii [1,2,3] - [3,4,5] on [1,2].

Tõmblukk

Lõpuks on "tõmblukk". Kaks massiivi saab kokku pakkida, ühendades need üsna ainulaadsel viisil. Parem on seda kõigepealt näidata ja pärast selgitada. Tulemus [1,2,3] .zip ([3,4,5]) on [ [1,3], [2,4], [3,5] ]. Mis siin juhtus? Kaks massiivi ühendati, esimene element oli kõigi mõlema massiivi esimeses positsioonis olevate elementide loetelu. Zipimine on natuke kummaline toiming ja te ei pruugi selle jaoks palju kasu leida. Selle eesmärk on ühendada kaks massiivi, mille elemendid on omavahel korrelatsioonis.

instagram story viewer