Raku kurss / Funkcionālā, paralēlā, reaktīvā un tīmekļa programmēšana / Paralēlā programmēšana / Savienojumi

Automātiskā pavedienošana

Kad savienojumu padodat kaut kam, kas gaida vienu vērtību — salīdzinājumam vai parastai funkcijai —, Raku klusi piemēro šo darbību katrai aiz savienojuma stāvošajai vērtībai un rezultātus atkal savieno savienojumā. To sauc par automātisko pavedienošanu (autothreading).

Piemēram, pieskaitīšana savienojumam pieskaita katrai tā vērtībai:

my $j = 1 | 2 | 3;
say $j + 10; # any(11, 12, 13)

+ 10 tika piemērots atsevišķi 1, 2 un 3, dodot jaunu any savienojumu any(11, 12, 13).

Salīdzinājumā apvienotais rezultāts sabrūk vienā patiesuma vērtībā atbilstoši savienojuma veidam:

say so all(3, 7, 2) > 0;  # True  — katra vērtība ir pozitīva
say so all(3, -1, 2) > 0; # False — ne visas ir pozitīvas
say so none(1, 2, 3) == 5; # True — neviena no tām nav 5

Tieši automātiskā pavedienošana padara savienojumus tik lakoniskus: viens salīdzinājums pārbauda daudzas vērtības. Konceptuāli pārbaudes ir neatkarīgas, tāpēc Raku ir brīvs tās izpildīt paralēli — un tieši tāpēc savienojumi dabiski iederas konkurences rīku komplektā.

Prakse

Jūs gaida 1 viktorīna par šī temata saturu.

Kursa navigācija

Viktorīna — Savienojumi   |   Viktorīna — Automātiskā pavedienošana


💪 Vai arī dodieties tieši uz šīs sadaļas vingrinājumiem.