这编译
//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 )
什么时候使用什么让事情变得更加混乱