Raku kurss / Padziļināti / Vairāk par iebūvētajiem tipiem

Kopas, somas un maisījumi

Bez masīviem un jaukteņiem Raku piedāvā dažus specializētus konteinerus vērtību kolekcijām. Vienkāršākā ir Set — nesakārtota atšķirīgu vērtību kolekcija, kurā katra vērtība vai nu ir loceklis, vai nav, un dublikāti tiek ignorēti.

Kopu izveido ar rutīnu set. Atkārtotas vērtības saplūst vienā:

my $s = set(1, 2, 3, 2, 1);
say $s.elems; # 3

Lai gan tika padoti pieci skaitļi, kopā ir tikai trīs elementi, jo 1 un 2 parādījās vairāk nekā vienu reizi.

Galvenais jautājums, ko kopai uzdodat, ir tas, vai vērtība tai pieder. Operators (lasāms kā «ir elements no») atgriež Būla vērtību:

say 2set(1, 2, 3); # True
say 9set(1, 2, 3); # False

Ja labprātāk paliekat pie tīra ASCII, to pašu operatoru var rakstīt kā (elem):

say 2 (elem) set(1, 2, 3); # True

Nākamie temati parāda, kā kopas apvienot, un iepazīstina ar maisiem un maisījumiem, kas ir kopas tuvi radinieki.

Šīs sadaļas temati

Prakse

Jūs gaida 1 viktorīna par šīs sadaļas saturu.

Vingrinājumi

Šajā sadaļā ir 3 vingrinājumi. Pirms ķerieties pie vingrinājumiem, izlasiet visus šīs sadaļas tematus.

  1. Saskaitīt unikālos
  2. Kopīgie elementi
  3. Saskaitīt somā

Kursa navigācija

Risinājums: Nedēļas diena   |   Kopu operācijas