微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Scala之模式匹配

基本模式匹配

    // 如同java中的switch case,需要匹配的参数放在match的前面,然后在方法体的case中进行相应的匹配执行的代码逻辑操作
   object MatchApp extends App{
   val names = Array("鹅","瓜","渣")
   val name = names(Random.nextInt(names.length))

   name match {
     case "鹅" => println("鸟叔")
     case "瓜" => println("瓜帅")
     case _=> println("渣叔")
   }

   def gradeTest(grade:String): Unit = {

     grade match{
       case "A" => println("成绩很优秀")
       case "B" => println("成绩可以")
       case "C" => println("成绩勉强")
       case _ => println("成绩待提高啊")
     }
   }
   gradeTest("A")
   gradeTest("B")
   gradeTest("D")
 }
 

 

加条件的模式匹配:双重过滤
        def gradeTest(name:String,grade:String): Unit = {

            grade match{
              case "A" => println("成绩很优秀")
              case "B" => println("成绩可以")
              case "C" => println("成绩勉强")
              case _ if(name == "lisi")=> println(name+",成绩待提高啊")
              case _=> println("成绩有点差啊")
            }
          }
 

类型匹配

       根据传入的参数的类型进行匹配,获取相应的参数的类型
       eg:
             obj match{
                  case i : Int  => println("Int")
                  case s : String => println("String")         //匹配到String字符串
                  case map : Map[_,_]  => map.foreach(println) //匹配到map集合并且打印
                  case list : List[_]  => println("List")     //匹配到List集合
                  case _=> println("类型不存在!")
                }
              }
              matchType(Map("li" -> "sda"))
              matchType(List("lisi"))

 


 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐