2010-03-31 11 views

Odpowiedz

7

Nie sądzę, że funkcje anonimowe mogą mieć parametry typu. Aby uzyskać szczegółowe informacje, patrz this answer.

7

Podsumowując od tej odpowiedzi: Nie, nie można dokonać anonimowych funkcje rodzajowy, ale można jednoznacznie określić swoją funkcję jako klasa, która rozciąga się jeden z Function0, Function1, Function2 itp .. cech i określenie funkcja zastosowania tych cech. Następnie zdefiniowana klasa może być ogólna. Oto fragment z oryginalnego artykułu dostępna 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

Można również napisać więcej idiomatically jako 'rozciąga (t => string) {' –