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 _)会被用来匹配.

Copyright © 尚硅谷大数据 2019 all right reserved,powered by Gitbook
该文件最后修订时间: 2019-01-10 11:18:21

results matching ""

    No results matching ""