Курс по 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 тест върху съдържанието на тази тема.

Навигация в курса

Потоци от данни   |   Тест — Операторът за поток


💪 Или преминете направо към упражненията в този раздел.