Strumienie DART

Strumienie DART
Strumień w języku programowania DART jest zdefiniowany jako seria zdarzeń asynchronicznych. To jest prawie podobne do iteralnej struktury danych. Jednak główną różnicą między strumieniem a iteracją jest to, że w przypadku tego drugiego musisz ręcznie poprosić o nadchodzące wydarzenia, podczas gdy w przypadku pierwszego strumienia wciąż mówi ci, że następny Wydarzenie jest gotowe. Proces ten trwa, dopóki nie ma już żadnych wydarzeń w strumieniu do odczytania. Strumienie rzutki przypominają również rury, w których wstawiasz wartość z jednego końca, a wartość ta jest odczytana przez odbiornik na drugim końcu. W tym samouczku poznamy podstawowe użycie strumieni w języku programowania DART w Ubuntu 20.04.

Jak używać strumieni w języku programowania rzutek w Ubuntu 20.04?

Aby skutecznie korzystać z strumieni w języku programowania rzutek, musisz zrozumieć dwa następujące przykłady, które zostały zaimplementowane na Ubuntu 20.04 System:

Przykład nr 1: Tworzenie strumienia rzutki do obliczania suma wielu liczb całkowitych

W tym przykładzie będziemy tworzyć strumień rzutek, który będzie czytać liczby całkowite, dopóki nie będą one istnieć, a gdy tylko przeczyta nowy, doda to do istniejących. Proces ten będzie kontynuowany, dopóki nie pozostanie żadne dalsze liczby całkowite, po czym będziesz w stanie uzyskać sumę wszystkich tych liczb całkowitych. Będziesz mógł to jasno zrozumieć, przechodząc przez skrypt DART pokazany na poniższym obrazku:

W tym przykładzie najpierw stworzyliśmy „przyszłość” typu liczb całkowitych, i.mi., Jest w stanie zwrócić wartość całkowitą, która jest w tym przypadku „suma”. Nazwaliśmy tę przyszłość „sumstream.„Jest to w stanie zaakceptować strumień liczb całkowitych. Następnie użyliśmy również słowa kluczowego „asynchronizacji”, definiując tę ​​przyszłość. To słowo kluczowe jest używane w dowolnym momencie, gdy chcesz użyć pętli „czekają na” w skrypcie. W tej przyszłości stworzyliśmy zmienną o nazwie „suma” i zainicjowaliśmy ją z „0”, aby nie zawierała żadnej wartości śmieci.

Następnie wykorzystaliśmy pętlę „czeka na”. Ta pętla będzie działać tak długo, jak długo jest więcej elementów w naszym strumieniu całkowitym. Ta pętla zasadniczo itera nad strumieniem liczb całkowitych, który został przekazany na naszą przyszłość. Wewnątrz tej pętli obliczamy sumę wszystkich wartości strumienia całkowitego. Ta pętla pęknie, gdy w strumieniu nie będzie żadnych dalszych elementów, po czym ta przyszłość zwróci „sumę” do funkcji „main ()”.

Następnie zadeklarowaliśmy funkcję „main ()” o typu „przyszłości” i użyliśmy również słowa kluczowego „asynchronizacji” z deklaracją. Następnie zadeklarowaliśmy i zainicjowaliśmy strumień czterech różnych liczb całkowitych w naszej funkcji sterownika. Następnie stworzyliśmy zmienną „sumę” do przechowywania wyniku przyszłości „sumstream”. Nazwaliśmy tę przyszłość słowem kluczowym „czekaj” podczas przekazywania do niej strumienia liczb całkowitych. Na koniec użyliśmy instrukcji „wydruku” do drukowania wyniku tego skryptu, i.mi., suma strumienia liczb całkowitych na terminalu.

Do wykonania tego skryptu DART wykorzystaliśmy kolejne polecenie:

$ DART Run Streams.strzałka

Wyjście naszego skryptu DART, i.mi., Suma naszego strumienia liczb całkowita jest pokazana na poniższym obrazku:

Przykład nr 2: Tworzenie strumienia rzutek do obliczania produktu wielu liczb całkowitych

W tym przykładzie chcemy utworzyć strumień rzutek do obliczania produktu wielu liczb całkowitych. Ten przykład jest prawie podobny do naszego pierwszego przykładu pod względem wykorzystania strumieni rzutek; Jednak jego główna logika, i.mi., Obliczanie produktu będzie się różnić od pierwszego przykładu. Poniższy skrypt DART wyjaśnia tę funkcjonalność:

W naszym drugim przykładzie zadeklarowaliśmy przyszłość DART z typem powrotu całkowitego. Nazwaliśmy ten przyszły „produkty”, a ta przyszłość przyjmie strumień liczb całkowitych jako dane wejściowe. Ponownie użyliśmy słowa kluczowego „asynchronizacji”, ponieważ w naszej przyszłości będziemy używać pętli „czekaj na”. W tej przyszłości zadeklarowaliśmy zmienną o nazwie „produkt” i przypisaliśmy jej wartość „1”. Tym razem nie zainicjowaliśmy tej zmiennej z „0”, jak to zrobiliśmy w przypadku sumy. Jest tak, ponieważ pomnożenie dowolnej liczby z „0” zmniejsza całe wyjście do „0”. Właśnie dlatego musimy zachować wartość tej zmiennej „1”, jeśli chcemy pomnożyć elementy strumienia całkowitego.

Następnie wykorzystaliśmy pętlę „oczekiwaną”, która itera nad strumieniem liczb całkowitych, który został przekazany na tę przyszłość. Wewnątrz tej pętli obliczamy iloczyn wszystkich elementów naszego strumienia liczb całkowitych. Te elementy są odczytane jeden po drugim, a wartość zmiennej „produktu” jest aktualizowana. Wreszcie, gdy odczytano wszystkie elementy strumienia całkowitego, ta przyszłość zwróci produkt wszystkich tych liczb całkowitych do funkcji „Main ()”.

Następnie, w naszej funkcji „main ()”, zadeklarowaliśmy strumień trzech liczb całkowitych. Następnie stworzyliśmy zmienną „produkt” do przechowywania wyniku naszej przyszłości „ProductStream”. Teraz wydrukowaliśmy wynik zmiennej „produktu” na terminalu.

Obraz pokazany poniżej wyświetla wyjście naszej przyszłości „ProductStream”, ja.mi., iloczyn wszystkich elementów naszego strumienia liczb całkowitych.

Wniosek

Ten artykuł został zaprojektowany, aby podzielić się z Tobą stosunkowo nową koncepcją związaną z językiem programowania DART, i.mi., Strumienie DART. Aby ta koncepcja była dla Ciebie zrozumiała, wdrożyliśmy dwa proste przykłady w Ubuntu 20.04 i wyjaśnili im oboje dogłębne. Po przejściu tych dwóch przykładów będziesz mógł bardzo dobrze zrozumieć koncepcję strumieni w języku programowania DART.