Fonctions Scala
Une fonction est un groupe d'instructions qui effectuent ensemble une tâche. Vous pouvez diviser votre code en différentes fonctions. La manière dont vous divisez votre code en différentes fonctions dépend de vous, mais logiquement, la division est généralement basée sur le fait que chaque fonction exécute une tâche spécifique.
Scala a des fonctions et des méthodes, et la différence sémantique entre les deux est très petite. Une méthode Scala fait partie d'une classe, tandis qu'une fonction est un objet pouvant être affecté à une variable. En d’autres termes, les fonctions définies dans une classe sont des méthodes.
Nous pouvons définir des fonctions n'importe où, même au sein des fonctions (fonctions en ligne). Le point le plus important est que les noms de fonctions Scala peuvent contenir les caractères spéciaux suivants : +, ++, ~, &,-, -- , , /, : etc.
Déclaration de fonction
Le format de déclaration de la fonction Scala est le suivant :
def functionName ([参数列表]) : [return type]
Si vous n'écrivez pas le signe égal et le corps de la méthode, alors la méthode sera implicitement déclaré comme "abstract" (abstract)", le type qui le contient est également un type abstrait.
Définition de la fonction
La définition de la méthode commence par un mot-clé def, suivi d'une liste de paramètres facultatifs, de deux points ":" et du type de retour de la méthode, d'un signe égal " =", et enfin le corps de la méthode.
Le format de définition de la fonction Scala est le suivant :
def functionName ([参数列表]) : [return type] = { function body return [expr] }
Dans le code ci-dessus, le type de retour peut être n'importe quel type de données Scala légal. Les paramètres de la liste des paramètres peuvent être séparés par des virgules.
La fonction de la fonction suivante est d'ajouter les deux paramètres entrants et de les additionner :
object add{ def addInt( a:Int, b:Int ) : Int = { var sum:Int = 0 sum = a + b return sum } }
Si la fonction ne renvoie pas de valeur, elle peut être renvoyée sous la forme Unité, qui est similaire Pour void de Java, l'exemple est le suivant :
object Hello{ def printMe( ) : Unit = { println("Hello, Scala!") } }
Appel de fonction
Scala fournit une variété de méthodes d'appel de fonction différentes :
Ce qui suit C'est le format standard pour appeler les méthodes :
functionName( 参数列表 )
Si la fonction utilise un objet instance pour appeler, nous pouvons utiliser un format de type Java (en utilisant le . number):
[instance.]functionName( 参数列表 )
L'exemple ci-dessus montre la définition et l'appel des fonctions :
object Test { 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 } }
Exécutez le code ci-dessus et le résultat de sortie est :
$ scalac Test.scala $ scala Test Returned Value : 12
Scala est également un langage fonctionnel, les fonctions sont donc le cœur du langage Scala. Les concepts de fonctions suivants nous aident à mieux comprendre la programmation Scala :
函数概念解析接案例 | ||
---|---|---|
函数传名调用(Call-by-Name) | 指定函数参数名 | |
函数 - 可变参数 | 递归函数 | |
默认参数值 | 高阶函数 | |
内嵌函数 | 匿名函数 | |
偏应用函数 | 函数柯里化(Function Currying) |