object PatternDemo extends App {
var sign = 0
val ch = '8'
val cc:Char = 'p'
var digit = 0
ch match {
case '+' => sign = 1
case '-' => sign = -1
//使用|分割多个选项
case '*' | 'X' | 'x' => sign = 2
//可以使用变量
case `cc` => sign = 3 //这里如果不使用反引号就会直接进入这里而不使用下面的语句,或者将变量名设为大写
//case _ if Character.isDigit(ch) => digit = Character.digit(ch, 10)
//case_类似Java中的default
//如果没有模式能匹配,会抛出MatchError
//可以给模式添加守卫
case _ if Character.isDigit(ch) => digit = Character.digit(ch, 10)
}
println("sign=" + sign + ":" + "digit:" + digit)
}