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"))

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值