当前位置: 首页> 财经> 创投人物 > 深圳网站优化_电商平台网站大全_深圳市seo网络推广哪家好_国内seo公司排名

深圳网站优化_电商平台网站大全_深圳市seo网络推广哪家好_国内seo公司排名

时间:2025/7/10 2:06:23来源:https://blog.csdn.net/2401_87129058/article/details/144189670 浏览次数:0次
深圳网站优化_电商平台网站大全_深圳市seo网络推广哪家好_国内seo公司排名

守卫语句的定义:

      守卫语句是一个附加在case 语句后的布尔表达式,用于进一步筛选匹配条件。只有当match 的值满足 case 模式并且守卫语句的条件也为真时,该 case 分支才会被执行。

守卫语句的格式:

      守卫语句紧跟在case 模式之后,通过 if 关键字引入,格式如下:

value match{case pattern if guardCondition => result//其他 case 语句
}

    其中,value 是要进行匹配的值,pattern 是匹配模式,guardCondition 是守卫条件(一个布尔表达式),result 是当该 case 分支匹配成功时返回的结果。

用户输入一个年份,判断是否是闰年:


import scala.io.StdInobject Test39 {def main(args: Array[String]): Unit = {//从控制台读入一个年份val year=StdIn.readInt()// 判断year是闰年// 1. year能整除4,不能整除100// 2. year能整除400year match {case x if(x%400==0) => println(s"$x 是闰年")case x if(x%4==0 && x%100 !=0) => println(s"$x 是闰年")case _ =>println(s"$year 不是闰年")}}
}

除了格式匹配之后,还可以对变量的类型进行匹配。格式如下:

object Test40 {def main(args: Array[String]): Unit = {val i=1val j:Double=1.2val b:Boolean=falseval x:Any=bx match {case _:Int=>println(s"当前是Int")case _:Double=>println(s"当前是Double")case a:Boolean=>println(s"当前是Boolean $a")case _=>println("其他")}}
}

匹配案例:

object Test42 {case class Person(name:String)case class Student(name:String,className:String)// match case 能根据 类名和属性的信息,匹配到对应的类// 注意:// 1. 匹配的时候,case class 的属性个数要对上// 2. 属性名不需要一一对应def main(args: Array[String]): Unit = {val p1=Person("小花")val s1=Student("小明","2(3)班")val a:Any=p1a match {case Person(nm) => println("普通人类",nm)case Student(name,className) => println(className,"的学生",name)case _ => println("其他")}}
}
需求:现在有一个数组Array(1,2,3,4),我希望能定义三个变量,它们的值分别是数组中的第1,2,3个元素的值
object Test42_1{//需求:现在有一个数组Array(1,2,3,4),我希望能定义三个变量,它们的值分别是数组中的第1,2,3个元素的值def main(args: Array[String]): Unit = {val arr=Array(1,2,3,4)//第一个元素的值: arr(0)
//    println(arr(0))
//    var x =arr(0)
//    var y =arr(1)
//    var z =arr(2)
//    println(x,y,z)//有一个更简单的方式//模式匹配var Array(x,y,z,_*)=arrprintln(x)println(y)println(z)}
}

关键字:深圳网站优化_电商平台网站大全_深圳市seo网络推广哪家好_国内seo公司排名

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: