Fonctions anonymes Scala

Scala 函数Fonctions Scala

La syntaxe pour définir une fonction anonyme en Scala est simple : le côté gauche de la flèche est la liste des paramètres, et le côté droit est le corps de la fonction.

Après avoir utilisé des fonctions anonymes, notre code devient plus concis.

L'expression suivante définit une fonction anonyme qui accepte un paramètre d'entrée de type Int :

var inc = (x:Int) => x+1

La fonction anonyme définie ci-dessus est en fait un raccourci pour la syntaxe suivante :

def add2 = new Function1[Int,Int]{  
    def apply(x:Int):Int = x+1;  
} 

L'inc de l'exemple ci-dessus peut maintenant être utilisé comme une fonction, comme suit :

var x = inc(7)-1

De même, nous pouvons définir plusieurs paramètres dans une fonction anonyme :

var mul = (x: Int, y: Int) => x*y

mul peut maintenant être utilisé comme une fonction, comme suit :

println(mul(3, 4))

Nous pouvons également ne définir aucun paramètre pour une fonction anonyme, comme montré ci-dessous :

var userDir = () => { System.getProperty("user.dir") }

userDir peut maintenant être utilisé comme une fonction, comme suit :

println( userDir() )

Exemple

Exemple

object Demo {
   def main(args: Array[String]) {
      println( "multiplier(1) value = " + multiplier(1) )
      println( "multiplier(2) value = " + multiplier(2) )
   }
   var factor = 3
   val multiplier = (i:Int) => i * factor
}

Enregistrez le code ci-dessus dans un fichier Demo.scala et exécutez les commandes suivantes :

$ scalac Demo.scala
$ scala Demo

La sortie est :

multiplier(1) value = 3
multiplier(2) value = 6

Scala 函数Fonctions Scala

Autres extensions