Syntax des Streams in Scala in Ubuntu 20.04
Der Hauptunterschied zwischen einem Scala -Stream und einer Liste besteht darin, dass die Elemente eines Streams eher langsam als alle auf einmal berechnet werden. Unsere Anwendung wird schneller ausgeführt, da nur die von uns angeforderten Elemente berechnet werden. Scalas Stream ist jedoch schnell.
Val Stream = 1 #:: 2 #:: 3 #:: stream.leerEin Stream kann mit dem #:: operator -Ansatz und dem Stream erstellt werden.leer am Ende des Ausdrucks im Gegensatz zu einer Liste in Scala, die mit dem :: Operator und dem Stream erstellt werden kann.leer. Ein Zahlenstrom wird als Spezifikation des Streams angegeben. In diesem Fall repräsentiert 1 den Kopf des Stroms. Während 2 und 3 den Schwanz des Stroms darstellen. Mit den im Folgenden befindlichen Befehlen können die Werte abgerufen werden:
Strom.nehmen (Wert)Beispiel 1: Erstellen eines Streams in Scala
Die Beispiele für die Erstellung eines Streams in Scala sind in den folgenden Abbildungen angegeben. Die Elemente in einem Strom werden nach der Bewertung aufbewahrt.
Wir haben das Objekt als "Stream1" konstruiert. Es enthält die Hauptmethodendefinition im Block der Hauptmethode. Wir haben den Scala -Stream -Code erstellt. Dafür haben wir zuerst die Keyword -Variable "Val" als "Mystream" deklariert. Die Variable „Mystream“ wird mit einem Strom von drei Zahlen eingestellt. Wir haben 2, 4 und 10 als Ganzzahlen für den Stream verwendet. Hier wird 2 als Kopf bezeichnet und die nächsten beiden Ganzzahlen, 4 und 10, werden als Schwanz des Stroms bezeichnet. Wir haben den Hashtag "#" und den Scope Resolution "::" -Operator zwischen den Ganzzahlen genutzt. Der Strom.leer wird am Ende des Stroms verwendet. Dann haben wir die Variable "Mystream" in der Println -Funktion bezeichnet, um den angegebenen Stream zu drucken.
Die Ergebnisse zeigen, dass der zweite Teil nicht bewertet wurde. In diesem Fall wird das Element durch ein Fragezeichen ersetzt. Die Listen werden erst nach Bedarf von Scala bewertet. Der Schwanz wird nicht gedruckt, da er noch nicht berechnet wurde. Die Streams sind für faule Berechnungen ausgewiesen.
Beispiel 2: Erstellen eines Streams mit dem Stream.Das Cons -Paket in Scala
Strom.Nachteile können auch verwendet werden, um einen Stream zu erstellen. Verwenden Sie zum Generieren von Streams den Paketimport „Scala.Sammlung.unveränderlich.Strom.Nachteile “.
Wir haben das Scala -Paket „Scala“ erwähnt.Sammlung.unveränderlich.Streams.Nachteile ”in unserem Header -Abschnitt. Danach haben wir ein Objekt als "Stream2" gemacht. Für dieses Objekt wird die Hauptmethodendefinition bereitgestellt. Wir haben die Variable "S" mit Hilfe des Schlüsselworts "Val" erstellt. Wir haben den Stream [int] der Variablen „S“ zugewiesen. Dann haben wir die Nachteile des Streams bezeichnet. Jede Nachteile des Stroms sind in den anderen eingeschlossen. Am Ende haben wir den Strom verwendet.leer in den letzten Nachteilen. Dann haben wir die Println -Methode, um den Stream zu drucken.KONS -Elemente. Wir haben die String -Interpolation "$ s" verwendet, um die Elemente des Streams zu drucken.
Der unveränderliche Stream wird im folgenden Ausgangsbildschirm erzeugt. Es werden nur die Kopfelemente des Stroms erhalten und der Schwanz wird nicht bewertet:
Beispiel 3: Verwenden der Funktion über den Stream in Scala
Um die Elemente aus einem Stream zu extrahieren, verwenden Sie die Take -Funktion.
Wir haben das Objekt „Stream3“ eingerichtet und die Hauptmethode dafür bezeichnet. Die Hauptmethode enthält die Variablenerklärung und die angezeigte Druckanweisung. Die Variable wird hier als „ST“ deklariert und mit dem Strom von drei ungeraden Zahlen initialisiert. Der Stream wird mit dem Bediener "#::" und dem Stream erstellt.leer am Ende des Stroms.
Nach der Erstellung des Streams haben wir ihn mit der Druckfunktion angezeigt. Dann nahmen wir die ersten beiden Elemente aus dem angegebenen Stream, indem wir den Wert „2“ in der ST übergeben haben.Methode take (). Als nächstes erhielten wir die ersten fünf Elemente aus dem Stream, indem wir die „5“ in der Stream take ().
Bei der ersten Bewertung des Stroms wird nur ein Element erhalten. Nach der Verwendung des Befehls zum Stream Take haben wir die ersten beiden Elemente aus dem Stream abgerufen. Darüber hinaus haben wir die ersten fünf Elemente aus dem Strom abgerufen. Da der Stream nur drei Elemente zur Verfügung gestellt werden, werden im letzten Ausgang nur drei zugegriffen. Beachten Sie, dass kein Fehler geworfen wird.
Beispiel 4: Verwenden der Karte im Stream in Scala
Wir verwenden die Kartenfunktion in einem Stream in einem Scala -Programm. Die Streamoperationen werden mit der Kartenfunktion durchgeführt.
Wir haben ein Objekt "Stream4", bei dem die Hauptdefinition des Programms aufgerufen wird. In der Hauptfunktion der Objekt "Stream4" haben wir eine "Stream" -Variable definiert. Hier haben wir den Stream mit dem Operator "#::" erstellt. Der Strom.leer wird am Ende des Stromausdrucks verwendet. Der erstellte Stream wird gedruckt, indem die Variable „Stream“ an die Println -Funktion übergeben wird. Als nächstes haben wir die Kartenfunktion in einer anderen Println -Funktion aufgerufen. Wir haben den Eingangsstrom mit Hilfe der Kartenfunktion mit dem neuen Stream transformiert.
Die erste erhaltene Ausgabe ist der Dampf und der nächste der neue Kartenstrom aus dem vorherigen Stream.
Beispiel 5: Initialisierung eines leeren Streams in Scala
Ein leerer Stream kann mit dem folgenden Code initialisiert werden:
Innerhalb des Objekts "Stream5" haben wir die Hauptmethode klassifiziert. In der Hauptmethode haben wir die Variable "S_Empty" erstellt und den leeren Stream festgelegt. Anschließend haben wir den leeren Stream mithilfe der Println.
Die Ausgabe zeigt, dass der Stream leer ist. Darüber hinaus wird der leere Stream angezeigt, aber keine Ausnahme wirft.
Abschluss
Dies ist ein Scala -Stream -Referenzhandbuch. Hier haben wir mithilfe der entsprechenden Programmierbeispiele die Funktion der Streams in Scala erstellt. Wir haben den Wert eines Elements im Scala -Stream nicht auf einmal berechnet, sondern einen nacheinander. Wenn Leistung ein Problem ist, verwenden Sie dies. Wenn es darum geht, ein Stream -Element zu erwerben, verwendet es die neueste Methode. Da immer nur ein Eintrag gleichzeitig berechnet wird, verwendet Stream weniger Speicher als die Liste.