我发现当使用模式匹配替代(对于字符串)时,Scala接受以大写字母开头的变量(在下面的示例中,MyValue1和MyValue2),但不接受以小写字母(myValue1,myValue2)开头的变量.这是Scala的错误还是功能?我在2.8版本中得到了这个.如果这是一个功能,任何人都可以解释其背后的基本原理吗?这是我使用的代码:
val myValue1 = "hello"
val myValue2 = "world"
val MyValue1 = "hello"
val MyValue2 = "world"
var x:String = "test"
x match {
case MyValue1 | MyValue2 => println ("first match")
case myValue1 | myValue2 => println ("second match")
}
Run Code Online (Sandbox Code Playgroud)
在运行时,我得到以下内容:
scala> val myValue1 = "hello"
myValue1: java.lang.String = hello
scala> val myValue2 = "world"
myValue2: java.lang.String = world
scala> val MyValue1 = "hello"
MyValue1: java.lang.String = hello
scala> val MyValue2 …Run Code Online (Sandbox Code Playgroud)