2011-09-15 12 views

Respuesta

6

Aunque lejos de un enfoque ideal, este "apaño":

abstract class Person { val name: String } 
def factory(name: String) = { 
    val _name = name 
    new Person { 
    val name: String = _name 
    } 
} 
factory("Fred").name // Fred 

no sé de ninguna otra manera de acercarse. Hay una sección en el Scala Language Specification (Capítulo 2) que habla sobre sombreado, y en ningún lugar se discute una forma de calificar esos ámbitos "implícitos".

Happy coding.

+3

Gracias. ¿Has visto este pequeño truco con el que tropecé? Dentro de una función, suponga que desea utilizar un parámetro implícitamente, pero no desea declarar el parámetro como implícito en la firma de su función. Puede hacer 'implicit val _ = x '(donde x es el nombre del parámetro de la función). –

+0

@ landon9720 No lo sabía. –

Cuestiones relacionadas