为什么我可以使用小写字母作为名称:
val (a, bC) = (1, 2)
(1, 2) match {
case (a, bC) => ???
}
并且不能使用大写字母:
/* compile errors: not found: value A, BC */
val (A, BC) = (1, 2)
/* compile errors: not found: value A, BC */
(1, 2) match {
case (A, BC) => ???
}
我在用着scala-2.11.17
因为 Scala 的设计者更喜欢允许以大写字母开头的标识符像这样使用(并且允许两者都会令人困惑):
val A = 1
2 match {
case A => true
case _ => false
} // returns false, because 2 != A
请注意,使用小写你会得到
val a = 1
2 match {
case a => true
case _ => false
} // returns true
because case a
绑定一个new变量称为a
.
一种非常常见的情况是
val opt: Option[Int] = ...
opt match {
case None => ... // you really don't want None to be a new variable here
case Some(a) => ...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)