Scala - Funktionen
Eine Funktion ist eine Gruppe von Anweisungen, die eine Aufgabe ausführen. Sie können Ihren Code in separate Funktionen aufteilen. Wie Sie Ihren Code auf verschiedene Funktionen aufteilen, liegt bei Ihnen. Logischerweise erfolgt die Aufteilung normalerweise so, dass jede Funktion eine bestimmte Aufgabe ausführt.
Scala hat sowohl Funktionen als auch Methoden und wir verwenden die Begriffe Methode und Funktion mit einem kleinen Unterschied austauschbar. Eine Scala-Methode ist Teil einer Klasse, die einen Namen, eine Signatur, optional einige Anmerkungen und einen Bytecode enthält, wobei eine Funktion in Scala ein vollständiges Objekt ist, das einer Variablen zugewiesen werden kann. Mit anderen Worten, eine Funktion, die als Mitglied eines Objekts definiert ist, wird als Methode bezeichnet.
Eine Funktionsdefinition kann an einer beliebigen Stelle in einer Quelldatei angezeigt werden, und Scala ermöglicht verschachtelte Funktionsdefinitionen, dh Funktionsdefinitionen in anderen Funktionsdefinitionen. Der wichtigste zu beachtende Punkt ist, dass der Name der Scala-Funktion Zeichen wie +, ++, ~, &, -, -, \, /,: usw. enthalten kann.
Funktionserklärungen
Eine Scala-Funktionsdeklaration hat die folgende Form:
def functionName ([list of parameters]) : [return type]
Methoden werden implizit als abstrakt deklariert, wenn Sie das Gleichheitszeichen und den Methodenkörper nicht verwenden.
Funktionsdefinitionen
Eine Scala-Funktionsdefinition hat die folgende Form:
Syntax
def functionName ([list of parameters]) : [return type] = {
function body
return [expr]
}
Hier, return type kann ein beliebiger gültiger Scala-Datentyp sein und list of parameterswird eine Liste von Variablen sein, die durch Komma getrennt sind, und eine Liste von Parametern und Rückgabetypen sind optional. Sehr ähnlich zu Java, areturnDie Anweisung kann zusammen mit einem Ausdruck verwendet werden, falls die Funktion einen Wert zurückgibt. Es folgt die Funktion, die zwei Ganzzahlen addiert und deren Summe zurückgibt -
Syntax
object add {
def addInt( a:Int, b:Int ) : Int = {
var sum:Int = 0
sum = a + b
return sum
}
}
Eine Funktion, die nichts zurückgibt, kann a zurückgeben Unit das ist gleichbedeutend mit voidin Java und zeigt an, dass die Funktion nichts zurückgibt. Die Funktionen, die in Scala nichts zurückgeben, werden Prozeduren genannt.
Syntax
Hier ist die Syntax -
object Hello{
def printMe( ) : Unit = {
println("Hello, Scala!")
}
}
Funktionen aufrufen
Scala bietet eine Reihe syntaktischer Variationen zum Aufrufen von Methoden. Das Folgende ist die Standardmethode zum Aufrufen einer Methode:
functionName( list of parameters )
Wenn eine Funktion mit einer Instanz des Objekts aufgerufen wird, verwenden wir die Java-ähnliche Punktnotation wie folgt:
[instance.]functionName( list of parameters )
Versuchen Sie das folgende Beispielprogramm, um dieselbe Funktion zu definieren und dann aufzurufen.
Beispiel
object Demo {
def main(args: Array[String]) {
println( "Returned Value : " + addInt(5,7) );
}
def addInt( a:Int, b:Int ) : Int = {
var sum:Int = 0
sum = a + b
return sum
}
}
Speichern Sie das obige Programm in Demo.scala. Die folgenden Befehle werden zum Kompilieren und Ausführen dieses Programms verwendet.
Befehl
\>scalac Demo.scala
\>scala Demo
Ausgabe
Returned Value : 12
Scala-Funktionen sind das Herzstück der Scala-Programmierung. Deshalb wird Scala als funktionale Programmiersprache angenommen. Im Folgenden finden Sie einige wichtige Konzepte für Scala-Funktionen, die von einem Scala-Programmierer verstanden werden sollten.
Funktionen Call-by-Name | Funktionen mit benannten Argumenten |
Funktion mit variablen Argumenten | Rekursionsfunktionen |
Standardparameterwerte | Funktionen höherer Ordnung |
Verschachtelte Funktionen | Anonyme Funktionen |
Teilweise angewandte Funktionen | Currying-Funktionen |