13.2 守卫
如果想要表达匹配某个范围的数据,就需要在模式匹配中增加条件"守卫"
package com.atguigu.day11.moshipipei
object MatchDemo3 {
def main(args: Array[String]): Unit = {
for (ch <- "+-3&%") {
var digit = 0
val sign = ch match {
case '+' => 1
case '-' => -1
case _ if Character.isDigit(ch) => digit = Character.digit(ch, 10)
case _ => 0
}
println("ch = " + ch)
println("sign = " + sign)
println("digit = " + digit)
println("---------")
}
}
}
说明:
守卫可以是任何的布尔条件
模式总是从上向下进行匹配. 如果带守卫的不能匹配, 则捕获所有的模式(
case _
)会被用来匹配.