Kurso de Raku / Funkcia, samtempa, reaktiva kaj reta programado / Funkcia programado / Datumfluoj

La flua operatoro

La flua operatoro ==> sendas liston de maldekstre en la operacion dekstre. La rezulto poste fluas plu al tie, kien montras la sekva ==>, finiĝante en variablo, kiu kolektas ĝin:

(1..10) ==> grep(* %% 2) ==> my @evens;
say @evens; # [2 4 6 8 10]

Legu ĝin de maldekstre dekstren: prenu 1..10, konservu la parajn nombrojn kaj konservu la rezulton en @evens. La operatoro %% signifas «estas dividebla per», do * %% 2 konservas la parajn nombrojn.

La grava regulo estas, ke fluo devas finiĝi en celo — kutime my @array (aŭ jam ekzistanta variablo). La datumoj fluas antaŭen en ĝin. Skribi la atribuon inverse, per =, ne faras tion, kion vi volas, ĉar la fluo kaj la atribuo konkurencas; ĉiam lasu la fluon finiĝi en sian variablon.

Fluo estas nur alia maniero skribi ĉenon da listaj operacioj. La saman rezulton oni povus skribi kiel my @evens = (1..10).grep(* %% 2). La flua formo montras sian valoron, kiam estas pluraj etapoj, kiel montras la sekva temo.

Praktiko

Vin atendas 1 kvizo pri la enhavo de ĉi tiu temo.

Kursa navigado

Datumfluoj   |   Kvizo — La flua operatoro


💪 Aŭ iru rekte al la ekzercoj de ĉi tiu sekcio.