zoukankan      html  css  js  c++  java
  • 11-1 模式匹配

    字符,匹配值

    object 字符匹配 {//匹配值之无返回值
        def m1(): Unit ={
            val ch = 'c'
            ch match {
                case 'a' => println(1)
                case 'b' => println(2)
                case  _  => println(3)
            }
        }
    
        //匹配值之有返回值
        def m2(){
            val ch = 'b'
            val m = ch match {
                case 'a' => 1
                case 'b' => "hello"
                case  _  => '3'
            }
            println(m)
        }
    
        //守卫条件
        def m3(){
            val ch = 'b'
            val m = ch match {
                case 'a' if ch.isDigit => 1
                case 'b' if ch > 'c' => "hello"
                case  _   => '3'    //如果该处也有守卫条件导致没有匹配,则scala.MatchError
            }
            println(m)
        }
    }

    字符串,匹配值

    object 字符串 {//小写开头的变量在case后当做变量,即m1()输出:xXX
        def m1(): Unit ={
            val str = "qwert"
            val xXX = 'q'
            str(1) match {
                case 'q' => println("这是q")
                case xXX => println("xXX")
                case x if x.isDigit => println(x + " : " + 1)
                case _ => println(2)
            }
        }
    
        //若要把xXX解析成常量,则加 反引号,所以输出:2
        def m2(): Unit ={
            val str = "qwert"
            val xXX = 'q'
            str(1) match {
                case 'q' => println("这是q")
                case `xXX` => println("xXX")
                case x if x.isDigit => println(x + " : " + 1)
                case _ => println(2)
            }
        }
    
        //大写开头的变量表示常量,输出:2
        def m3(): Unit ={
            val str = "qwert"
            val Xxx = 'q'
            str(1) match {
                case 'q' => println("这是q")
                case Xxx => println("Xxx")
                case x if x.isDigit => println(x + " : " + 1)
                case _ => println(2)
            }
        }
    }

    类型匹配

    object 匹配类型 {
      //输出:Int def main(args: Array[String]): Unit
    = { val i:Any = 10 i match { case x:String=> println("String") case x:Int => println("Int") } } }
    渐变 --> 突变
  • 相关阅读:
    第8组 Beta(2/6)(赵红霞)
    第8组 Beta (1/6)(赵红霞)
    第8组 Alpha(6/6)(赵红霞)
    第8组 Alpha(5/6)(赵红霞)
    第8组 Alpha(4/6)(赵红霞)
    第8组 Alpha(3/6)(赵红霞)
    第8组 Alpha(2/6)(赵红霞)
    Windows炫酷桌面钢铁侠主题 雨滴 Rainmeter
    blob 视频无法解析下载?不存在的,来瞅瞅这个方法
    java C C++ .net ps 安卓 等各种教学视频免费送
  • 原文地址:https://www.cnblogs.com/lybpy/p/9757310.html
Copyright © 2011-2022 走看看