これはコンパイルします
//legal
def s1 = List("aaa","bbb").collect { case x => x.split("\\w") }
以下はしません。
// all illegal
// missing parameter type for expanded function ((x$2) => x$2.split{<null>}("\\w"{<null>} {<null>}){<null>}
def s2 = List("aaa","bbb").collect ( _.split("\\w") )
// missing parameter type
def s3 = List("aaa","bbb").collect ( x => x.split("\\w") )
// type mismatch; found : String => Array[java.lang.String] required: PartialFunction[java.lang.String,?]
def s4 = List("aaa","bbb").collect ( (x:String) => x.split("\\w") )
そして、scalaコンパイラーが私のエラーがどこにあるかを私と通信するために最善を尽くしている間、それは私の頭上で起こっています。
これもコンパイルされるという事実
def s2 = List("aaa","bbb").find ( _.split("\\w").length > 2 )
いつ何を使うかがさらに混乱します