Scala中条件守卫
package Scala10 import scala.io.StdIn //模式匹配-条件守卫 object jfhj { // // 从控制台读入一个数字a,使用(StdIn.readInt) // 如果a>=0并且a<=3,打印[0-3] // 如果a>=4并且a<=8,打印[4-8] // 否则:打印匹配 // def main(args: Array[String]): Unit = { // val a = StdIn.readInt() //等待从键盘输入内容 // println(s"从键盘输入的数字是:$a") // a match { // case x if x >= 0 && x <= 3 => println(s"[0-3]") // case x if x >= 4 && x <= 8 => println(s"[4-8]") // case _ => println(s"打印未匹配") // } // } // def main(args: Array[String]): Unit = { // for(i<- 2000 to 2040){ // i match { // case x if (x%4==0) && (x%100!=0)|| (x%400==0) =>println(s"${x}年是闰年") // case _=>println(s"${i}年不是闰年") // } // } // } // 匹配类型 // def main(args: Array[String]): Unit = { // val i: Int = 1 // val b: Boolean = false // // // Any任意的 // // val x: Any = i 定义一个变量x,类型无所谓 // // val x: Any = b // val x: Any = "abc" // x match { // case _: Int => println(s"$x 是Int类型的") //_:Int 表示变量是Int类型 // case _: Boolean => println(s"$x 是Boolean 类型的") // case _ => println("其他") // } // } // 匹配数组 // def main(args: Array[String]): Unit = { // var arr1=Array(1,2,3) // var arr2=Array(1,2,4) // var arr3=Array(1,2,9,38) // // var arr=Array(100) // arr match { // case Array(0)=>println("只有1个元素,且第一个为0") // case Array(1,x,y)=>println(s"三个元素,且第一个为1,第二个是${x},第三个是${y}") // case Array(1,_*)=>println("n个元素,且第一个为1") // case _ =>println("其他") // } // } // 匹配case class // def main(args: Array[String]): Unit = { // case class Stu(name:String) // case class Teacher(name:String,subject:String) // val s1=Stu("小花") // val t1=Teacher("小明","体育") // // val x:Any=t1 // // x match { // case Stu(a)=>println(s"学生${a}") // case Teacher(a,b)=>println(s"${b}老师${a}") // case _ =>println("其他") // } // } // 定义变量赋值 //def main(args: Array[String]): Unit = { // var arr=Array(1,2,3,4,7) 任务:定义三个变量,分别保存数组中有第一个,第二个,第三个 var x=arr(0) var y=arr(1) var z=arr(2) 要先匹配上,然后在赋值 // var Array(x,y,_,z,_*)=arr // // println(s"x= $x y= $y z= $z") //} }
原文地址:https://blog.csdn.net/2301_80781830/article/details/144217362
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/427911.html 如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/427911.html 如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!