2008-11-18 13 views

Respuesta

14

De hecho, existe: se llama "val". :-)

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

Los frenos son, por supuesto, opcional aquí, yo prefiero a la hora de definir las funciones de paréntesis (después de todo, esto no es Lisp). La palabra clave val define un nuevo enlace dentro del alcance léxico actual. Scala no obliga a los locales a definir su propio ámbito, a diferencia de los lenguajes como Lisp y ML.

En realidad, var también funciona dentro de cualquier ámbito, pero se considera un mal estilo para usarlo.

+0

, gracias :) pensé que había intentado eso, pero debo de haber conseguido la sintaxis incorrecta. ¿Hay alguna manera de tenerlo todo en una línea? – namin

+0

@ Germán tiene la versión de una línea. –

6

OK, aquí está el chiste con la unión:

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

Saludos

Cuestiones relacionadas