"Kaj je najboljši način za kombiniranje nizi? "To vprašanje je precej nejasno in lahko pomeni nekaj različnih stvari.
Povezovanje
Združevanje pomeni dodajanje ene stvari k drugi. Na primer združevanje nizov [1,2,3] in [4,5,6] vam bo dal [1,2,3,4,5,6]. To je mogoče storiti na več načinov Ruby.
Prvi je operater plus. To bo dodalo eno matrika do konca drugega, ustvari tretji niz z elementi obeh.
Lahko pa uporabite konkat metoda (operater + in metoda concat sta funkcionalno enakovredna).
Če izvajate veliko teh operacij, se boste morda želeli temu izogniti. Ustvarjanje predmeta ni brezplačen in vsaka od teh operacij ustvari tretji niz. Če želite spremeniti matriko na svojem mestu in jo z novimi elementi podaljšati, lahko uporabite << operater. Če pa poskusite kaj takega, boste dobili nepričakovan rezultat.
Namesto pričakovanega [1,2,3,4,5,6] array, ki ga dobimo [1,2,3,[4,5,6]]. To je smiselno, da operater dodajanja vzame predmet, ki mu ga daste, in ga doda na konec matrike. Ni vedelo ali skrbelo, da ste poskušali dodati matriko v polje. Torej si lahko sami zavežemo zanjo.
Nastavite operacije
Svetovni "združiti" lahko uporabimo tudi za opisovanje nastavljenih operacij. Osnovne operacije operacij križišča, zveze in razlike so na voljo v Rubyju. Ne pozabite, da "kompleti" opisujejo niz predmetov (ali matematike, številke), ki so v tem nizu edinstveni. Na primer, če bi naredili operacijo nastavitve na matriki [1,1,2,3] Ruby bo odstranila tisto drugo 1, čeprav je morda 1 v dobljenem nizu. Zato se zavedajte, da so te nastavljene operacije drugačne od seznamov. Nabori in seznami so bistveno različne stvari.
Zveza dveh sklopov lahko vzamete s pomočjo | operater. To je operater "ali", če je element v enem ali drugem nizu, je v dobljenem nizu. Torej rezultat [1,2,3] | [3,4,5] je [1,2,3,4,5] (ne pozabite, da čeprav obstajata dve troji, je to nastavljena operacija in ne seznam).
Presečišče dveh sklopov je še en način združevanja dveh sklopov. Namesto operacije "ali" je presečišče dveh nizov operacij "in". Elementi dobljenega niza so tisti v oboje kompleti. In kot operacija "in" uporabljamo & operater. Torej rezultat [1,2,3] & [3,4,5] je preprosto [3].
Končno je še en način, kako "kombinirati" dva sklopa, in sicer vzeti njihovo razliko. Razlika dveh nizov je množica vseh predmetov v prvem nizu, ki je ne v drugem nizu. Torej [1,2,3] - [3,4,5] je [1,2].
Zipanje
Končno je tu "zadrgo". Dva niza lahko združite na precej edinstven način. Najbolje je, da to najprej pokažeš in nato razložiš. Rezultat [1,2,3] .zip ([3,4,5]) je [ [1,3], [2,4], [3,5] ]. Kaj se je zgodilo tukaj? Oba niza sta bila združena, prvi element pa je seznam vseh elementov v prvem položaju obeh nizov. Zipanje je nekoliko čudna operacija in zanj morda ne boste našli veliko koristi. Njegov namen je združiti dva niza, katerih elementi so tesno povezani.