2008-11-18 8 views

Répondre

14

En effet il y a: ça s'appelle "val". :-)

({ x: Double => 
    val y = x + x 
    y * y 
})(3) 

Les accolades sont bien sûr en option ici, je préfère les à des parenthèses lors de la définition des fonctions (après tout, ce n'est pas Lisp). Le mot clé val définit une nouvelle liaison dans la portée lexicale actuelle. Scala ne force pas les locaux à définir leur propre portée, contrairement aux langages tels que Lisp et ML.

En fait, var fonctionne aussi dans n'importe quel cadre, mais il est considéré comme un mauvais style de l'utiliser.

+0

Merci :) Je pensais que je l'avais essayé, mais je dois avoir obtenu la syntaxe erronée. Y a-t-il un moyen de tout avoir en une ligne? – namin

+0

@ Germán a la version d'une ligne. –

6

OK, voici une doublure avec la liaison:

({ x:Double => val y = x + x; y * y })(3) 

Vive

Questions connexes