Skala höhere Ordnung

Skala höhere Ordnung
Wenn eine Funktion eine andere Funktion als Parameter akzeptiert oder eine andere Funktion als Ausgabe zurückgibt, wird sie als Funktion höherer Ordnung bezeichnet. Dies bezieht sich auf Funktionen, die mit anderen Funktionen interagieren. Es ist wichtig zu beachten, dass diese Funktion höherer Ordnung mit Funktionen und Methoden verwendet werden kann, die die Funktionen als Ergebnisse zurückgeben oder die Funktionen als Parameter betrachten. Dies ist machbar, da der Scala -Compiler die Umwandlung von Methoden in Funktionen ermöglicht. Die Idee höherer Ordnung in Scala in Ubuntu 20 über höhere Ordnung.04 wird in diesem Artikel erläutert.

Bedeutung höherer Ordnung Funktionen

In Bezug auf die Funktionen höherer Ordnung sind einige wichtige Punkte:

    • Funktionen höherer Ordnung sind denkbar, weil die Scala-Programmiersprache die Funktionen als erstklassige Werte behandelt. Dies bedeutet, dass die Funktionen wie andere Werte als Parameter oder Ausgänge geliefert werden können, was nützlich ist, um eine flexible Möglichkeit zu bieten, die Programme zu schreiben.
    • Bei der Erstellung einer Funktionszusammensetzung, bei der Funktionen aus anderen Funktionen erstellt werden können, ist dies vorteilhaft. Die als „Funktionszusammensetzung“ bekannte Zusammensetzung besteht darin, zwei zuvor komponierte Funktionen zu verwenden, um eine einzelne Funktion zu erstellen.
    • Lambda -Funktionen und anonyme Funktionen können auch mit seiner Hilfe erstellt werden. Die Funktionen ohne Name, aber dennoch werden Funktionen als Funktionen als anonyme Funktionen bezeichnet.
    • Es wird sowohl auf Programme als auch auf die Anzahl der sinnlosen Codezeilen angewendet.

Beispiel 1: Verwenden einer Funktion, um eine andere Funktion als Argument zu nehmen

Betrachten wir das erste Beispiel einer Funktion höherer Ordnung. Wir übergeben die Funktion in einer bestimmten Funktion als Parameter.


Hier ist das Objekt als „myObject“ bezeichnet. In der Hauptdefinition des Objekts haben wir dann eine Funktion "func" bezeichnet. Die Funktion „func“ nimmt den numerischen Wert und die Funktion „MultiplyByThree“ als Eingabe an. Wir haben erneut die Funktion "Func" aufgerufen, um den Wert von "x" zu drucken, der als Eingabe innerhalb des "F" übergeben wird. Zuletzt setzen wir den Vorgang "X*3" in der Funktion "MultiplyByByThree".

Während wir die Funktion „multiplyByByThree“ in der anderen Funktion „func“ übergeben haben, gibt die Funktion „func“ das Ergebnis der Funktion „MultiplyByThee“ wie folgt aus:

Beispiel 2: Verwenden der anonymen Funktion als Lambda

Eine anonyme Funktion hat keinen Namen, sondern führt dieselbe Funktion aus. Wenn Sie nicht beabsichtigen, eine Funktion später zu wiederholen, ist das Erstellen einer anonymen Version eine gute Idee. In Scala können die Wildkarten -Operatoren „=>“ und „_“ unterstrichen, um anonyme Funktionen zu generieren.
Hier ist eins zu veranschaulichen:


In der Hauptmethode des Objekts „Mydemo“ haben wir zwei Variablen erstellt. Die Variablen werden als "res1" und "res2" deklariert. Die Variable "res1" wird mit der anonymen Funktion mit dem Operator "=>" initialisiert. Die anonyme Funktion wird mit den X- und Y -Parametern eingestellt und auf der rechten Seite des Raketenbetriebs "=>" Operator setzen wir die Gleichung "x+y" fest. Danach haben wir eine weitere anonyme Funktion, die mit der Wildcard "_" verwendet wird. Innerhalb der Println -Methode haben wir "res1" und "res2" bezeichnet und ihnen zwei Werte zugewiesen.

Die Ergebnisse für beide anonymen Funktionen werden wie folgt generiert:

Beispiel 3: Verwendung von Multilin -Expression

Der Begriff „Multilinexpression“ bezieht sich auf die Ausdrücke, die viele Zeilen umfassen. Wenn Sie die Multiline -Ausdrücke in Scala verwenden, sollten Sie Vorsicht walten lassen. Um Probleme in Bezug auf den multilinen Ausdruck zu vermeiden, können Sie die folgenden Methoden anwenden:


Das Objekt "myTest" hat die Definition von drei Funktionen. Die erste Funktion ist definiert als "sum1", das die Parameter "I" und "J" nimmt. Die Eingangswerte "I" und "J" werden in dem Funktion "sum1" als "i+J" eingestellt. Als nächstes haben wir eine andere Funktion als "sum2", die auch die Eingangswerte nimmt und auch den Vorgang "i+j" festlegt. Danach haben wir die Hauptmethode definiert, bei der zwei Variablen „Ergebnis1“ und „Ergebnis2“ deklariert werden. Diese Variablen werden als "sum1" und "sum2" bezeichnet, um die Werte gegen das "I" und "J" zu übergeben.

Die Ausgabe, die durch beide Funktionen "sum1" und "sum2" erhalten wurde.

Beispiel 4: Verwenden einer Funktionstrage

Eine Methode in Scala kann zahlreiche Parameterlisten aufweisen. Eine Funktion, die die fehlenden Argumentlisten als Argumente akzeptiert, wird erstellt, wenn eine Funktion mit weniger Parameterlisten aufgerufen wird, als es benötigt. Mit anderen Worten, es ist eine Methode, um eine Funktion zu ändern, die mehrere Parameter in eine akzeptiert, die nur eine akzeptiert.


Hier haben wir eine Funktion „hinzufügen“ erstellt, die zwei Argumente getrennt nimmt. Das „P“ ist das erste Argument und „Q“ ist das zweite Argument. Dann haben wir in der Hauptmethode eine Variable „Ergebnis1“ deklariert. Die Variable "Ergebnis1" wird als "Add" -Funktion bezeichnet und die Werte für "P" und "q" festgelegt. Außerdem haben wir das einzelne Argument für die Funktion „Add“ übergeben, die in der Variablen "Addvalues" aufgerufen wird. Die Addvalues ​​nimmt auch die Argumentwerte einer Zahl an.

Die Ergebnisse für den vorherigen Code nach Kompilierung sind wie folgt:

Beispiel 5: Verwenden einer verschachtelten Funktion

Als erstklassige Funktionssprache können Sie Scala die Funktionen übergeben, die Funktionen zurückgeben, die Funktionen komponieren, die verschachtelten Funktionen verwenden und mehr. Die Definition und Aufruf von verschachtelten Funktionen werden im folgenden Beispiel demonstriert:


Innerhalb der Funktion "sub1" haben wir eine andere Funktion "sub2" definiert, die den Unterschied zwischen "A-B" bewertet, das bewertet wird. Außerhalb der Sub2 -Funktion haben wir den Argumentwert "x" und "sub2 (y, z)" bezeichnet, das den Argumentwert nimmt, und "Sub2 (y, z)" nimmt. Als nächstes haben wir eine Variable „Ergebnis“ deklariert, die als Sub1 -Funktion bezeichnet wird und den numerischen Wert übergeben wurde, der für unterschiedliche Operationen bewertet werden soll.

Das Folgende ist das unterschiedliche Betriebsergebnis, das durch den vorherigen Code generiert wird:

Beispiel 6: Verwenden einer Funktion mit Parametern der variablen Länge

Sie können die Funktionen mit Parametern der variablen Länge in Scala definieren. Jede Menge an Argumenten kann beim Aufrufen der Funktion übergeben werden.


In der Funktion "Add" setzen wir die Variable "MySum", die ursprünglich Null ist. Dann haben wir für Schleifen, die über die Zahlen und Inkremente nach dem Mysum iteriert. In der Hauptsache haben wir die Funktion hinzufügen und die numerischen Werte an sie übergeben.

Die Länge der Variablen „Mysum“ wird auf dem Bildschirm gedruckt.

Abschluss

Wir haben aus dem oben genannten Artikel entdeckt, dass die Verwendung der Funktionen höherer Ordnung in Scala die Codebasis einfach und einfach für Operationen verstehen kann. Funktionen höherer Ordnung sind solche, die die Eingaben von anderen Funktionen akzeptieren oder zurückgeben. Wir haben auch die Beispiele untersucht, in denen die verschiedenen Anwendungen für diese Funktionen höherer Ordnung gezeigt werden. Zusätzlich haben wir gelernt, die anonymen Funktionen als Funktionen mit hoher Ordnung zu übergeben.