Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Функционално програмиране / Потоци от данни
Операторът за поток
Операторът за поток ==> изпраща списък отляво към
операцията отдясно. Резултатът после тече нататък, накъдето сочи
следващият ==>, и завършва в променлива, която го
събира:
(1..10) ==> grep(* %% 2) ==> my @evens;
say @evens; # [2 4 6 8 10]Прочетете го отляво надясно: вземи 1..10, запази четните
числа и съхрани резултата в @evens. Операторът
%% означава „дели се на“, така че * %% 2
запазва четните числа.
Важното правило е, че потокът трябва да завършва с
цел — обикновено my @array (или съществуваща
променлива). Данните текат напред в нея. Записването на присвояването
наобратно, с =, не прави каквото искате, защото потокът и
присвояването се борят помежду си; винаги оставяйте потока да завърши в
своята променлива.
Потокът е просто друг начин да се запише верига от операции върху
списък. Същият резултат може да се запише и като
my @evens = (1..10).grep(* %% 2). Формата с поток се
разгръща, когато етапите са няколко — това показва следващата тема.
Практика
Направете 1 тест върху съдържанието на тази тема.
Навигация в курса
← Потоци от данни | Тест — Операторът за поток →
💪 Или преминете направо към упражненията в този
раздел.