2010-03-31 27 views

Respuesta

7

No creo que las funciones anónimas puedan tener parámetros de tipo. Vea this answer para más detalles.

7

Para resumir de esa respuesta: No, no se puede hacer anónimos funciones genéricas, pero se puede definir explícitamente su función como una clase que se extiende uno de los Function0, Función1, Función2, etc .. rasgos y definir la función de aplicar desde esos rasgos. Entonces la clase que defines puede ser genérica. Aquí está el extracto del artículo original, disponible here:

scala> class myfunc[T] extends Function1[T,String] { 
    |  def apply(x:T) = x.toString.substring(0,4) 
    | } 
defined class myfunc 

scala> val f5 = new myfunc[String] 
f5: myfunc[String] = <function> 

scala> f5("abcdefg") 
res13: java.lang.String = abcd 

scala> val f6 = new myfunc[Int] 
f6: myfunc[Int] = <function> 

scala> f6(1234567) 
res14: java.lang.String = 1234 
+2

también puede escribir más idiomáticamente como 'extiende (T => String) {' –

Cuestiones relacionadas