关于以下scala代码,函数m2a和m2b明显不同于参数的情况,即abc vs Abc.这似乎在结果上有所不同,如下面的例子所示.当使用最近的2.8编译器运行它时,会产生以下结果(我希望所有这些都是真的).任何见解将不胜感激.
m1=true
m2a=true
m2b=false
m3=true
Run Code Online (Sandbox Code Playgroud)
码
package sample
import scala.xml._
object ParamTest extends Application {
def m1(n:Node, abc:String):Boolean = {
n == <id>{Text(abc)}</id>
}
def m2a(n:Node, Abc:String):Boolean = n match {
case <id>{Text(Abc)}</id> => true
case _ => false;
}
// why does this one not work?
def m2b(n:Node, abc:String):Boolean = n match {
case <id>{Text(abc)}</id> => true
case _ => false;
}
def m3(n:Node, abc:String):Boolean = n match {
case Elem(_,"id",_,_, c @_ *) => {
c …Run Code Online (Sandbox Code Playgroud)