Strumienie Scala

Strumienie Scala
Scala ma ułatwić leniwe operacje. Ponieważ wszystkie obliczenia tych zbiorów są odroczone, nie są one ściśle zdefiniowane. Zbadamy strumienie Scala, które są unikalnymi typami list w tym artykule na temat strumieni w Scala. Zbiór Scala, który przechowuje dane, obejmuje również strumień Scala. Jedyną różnicą, która oddziela to od listy w Scala, jest to, że jest to konieczne dla Scala, gdy obliczane są wartości strumienia. Ponieważ nie ładują danych jednocześnie, strumienie Scala to leniwe listy, które oceniają wartości tylko w razie potrzeby. To poprawia wydajność programu.

Składnia strumienia w Scala w Ubuntu 20.04

Główną różnicą między strumieniem Scala a listą jest to, że elementy strumienia są obliczane powoli, a nie wszystkie jednocześnie. Nasza aplikacja działa szybciej, ponieważ tylko elementy, o które prosimy, są obliczane. Strumień Scali jest jednak szybki.

Val Stream = 1 #:: 2 #:: 3 #:: Stream.pusty

Strumień można tworzyć za pomocą podejścia i strumienia operatora.puste na końcu wyrażenia, w przeciwieństwie do listy w Scala, którą można utworzyć za pomocą :: operatora i strumienia.pusty. Strumień liczb jest podany jako specyfikacja strumienia. W tym przypadku 1 reprezentuje głowę strumienia. Podczas gdy 2 i 3 reprezentują ogon strumienia. Do pobrania wartości można użyć poleceń, takich jak te z następujących osób:

strumień.Weź (wartość)

Przykład 1: Tworzenie strumienia w Scala

Przykłady tworzenia strumienia w Scala podano na poniższych ilustracjach. Elementy w strumieniu są przechowywane po ocenie.

Skonstruowaliśmy obiekt jako „Stream1”. Zawiera główną definicję metody wewnątrz bloku głównej metody. Zrobiliśmy kod strumienia Scala. W tym celu najpierw zadeklarowaliśmy zmienną słów kluczowych „VAL” jako „MyStream”. Zmienna „myStream” jest ustawiona ze strumieniem trzech liczb. Użyliśmy 2, 4 i 10 jako liczb całkowitych strumienia. Tutaj 2 nazywane jest głową, a kolejne dwa liczby całkowite, 4 i 10, są określane jako ogon strumienia. Wykorzystaliśmy operator hashtagu „#” i rozdzielczość zakresu „::” pomiędzy liczbowymi. Strumień.Pusta jest zatrudniona na końcu strumienia. Następnie zadzwoniliśmy do zmiennej „MyStream” wewnątrz funkcji println, aby wydrukować określony strumień.

Wyniki pokazują, że druga część nie została oceniona. W tym przypadku element jest zastąpiony znakiem zapytania. Listy nie są oceniane przez Scala, dopóki nie są wymagane. Ogon nie jest drukowany, ponieważ nie został jeszcze obliczony. Strumienie są wyznaczone do leniwych obliczeń.

Przykład 2: Tworzenie strumienia ze strumieniem.Pakiet w Scala

Strumień.Wady można również użyć do budowy strumienia. Aby wygenerować strumienie, użyj pakietu importu „Scala.kolekcja.niezmienny.Strumień.Cons".

Wspominaliśmy o pakiecie Scala „Scala.kolekcja.niezmienny.Strumienie.wady ”w naszej sekcji nagłówka. Następnie stworzyliśmy obiekt jako „Stream2”. Dla tego obiektu przewidziano główną definicję metody. Stworzyliśmy zmienną „S” za pomocą słowa kluczowego „Val”. Przypisaliśmy strumień [int] do zmiennej „S”. Następnie nazwaliśmy wady strumienia. Każde wady strumienia są zamknięte wewnątrz drugiego. W końcu użyliśmy strumienia.puste w ostatnich wadach. Następnie mamy metodę println do drukowania strumienia.elementy wad. Wykorzystaliśmy interpolację łańcuchową „$ s” do wydrukowania elementów strumienia.

Niezmienny strumień jest generowany na następującym ekranie wyjściowym. Otrzymywane są tylko elementy głowy strumienia, a ogon nie jest oceniany:

Przykład 3: Korzystanie z funkcji przejmowania w strumieniu w Scala

Aby wyodrębnić elementy ze strumienia, użyj funkcji przejmowania.

Ustanowiliśmy obiekt „Stream3” i wyznaczyliśmy dla niego główną metodę. Główna metoda zawiera deklarację zmienną i instrukcję drukowania do wyświetlenia. Zmienna jest tutaj zadeklarowana jako „ST” i inicjowana z strumieniem trzech liczb nieparzystnych. Strumień jest tworzony za pomocą operatora „#::” i strumienia.puste na końcu strumienia.

Po utworzeniu strumienia wyświetliśmy go z funkcją drukowania. Następnie wzięliśmy pierwsze dwa elementy z danego strumienia, przekazując wartość „2” w ST.Metoda (). Następnie uzyskaliśmy pierwsze pięć elementów ze strumienia, przekazując metodę „5” w metodzie strumienia ().

Po pierwszej ocenie strumienia uzyskuje się tylko jeden element. Po użyciu polecenia przerób strumień, odzyskaliśmy pierwsze dwa elementy ze strumienia. Ponadto pobraliśmy pierwsze pięć elementów ze strumienia. Ponieważ do strumienia dostarczane są tylko trzy elementy, więc w ostatnim wyjściu są dostępne tylko trzy. Zwróć uwagę, że żaden błąd nie jest rzucany.

Przykład 4: Korzystanie z mapy w strumieniu w Scala

Używamy funkcji mapy w strumieniu w programie Scala. Operacje strumieniowe są przeprowadzane za pomocą funkcji mapy.

Mamy obiekt „Stream4”, w którym nazywana jest główna definicja programu. W ramach głównej funkcji obiektu „Stream4” zdefiniowaliśmy zmienną „Stream”. Tutaj stworzyliśmy strumień z operatorem „#::”. Strumień.Pusty jest używany na końcu ekspresji strumienia. Utworzony strumień jest drukowany przez przekazanie zmiennej „strumienia” do funkcji println. Następnie wywołaliśmy funkcję mapy w innej funkcji println. Przekształciliśmy strumień wejściowy za pomocą nowego strumienia za pomocą funkcji mapy.

Pierwszym uzyskanym wyjściem jest para, a następny to nowy strumień mapy z poprzedniego strumienia.

Przykład 5: Zainicjowanie pustego strumienia w Scala

Pusty strumień można zainicjować za pomocą następującego kodu:

W obiekcie „Stream5” sklasyfikowaliśmy główną metodę. W głównej metodzie utworzyliśmy zmienną „S_Empty” i ustawiliśmy pusty strumień. Następnie wyświetliśmy pusty strumień, wykorzystując metodę println i przekazaliśmy do niego zmienną „s_Empty”.

Wyjście pokazuje, że strumień jest pusty. Ponadto wyświetla pusty strumień, ale nie rzuca żadnego wyjątku.

Wniosek

To jest podręcznik odniesienia strumienia Scala. Tutaj przeszliśmy, jak utworzyć funkcję strumieni w Scala za pomocą odpowiednich przykładów programowania. Nie obliczyliśmy wartości elementu jednocześnie w strumieniu Scala, ale raczej pojedynczo. Kiedy wydajność jest problemem, użyj tego. Jeśli chodzi o pozyskiwanie elementu strumienia, wykorzystuje najnowszą metodę. Ponieważ tylko jeden wpis jest obliczany jednocześnie, strumień używa mniej pamięci niż lista.