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

}
相关推荐
你的人类朋友7 小时前
说说签名与验签
后端
databook8 小时前
Manim实现脉冲闪烁特效
后端·python·动效
canonical_entropy11 小时前
AI时代,我们还需要低代码吗?—— 一场关于模型、演化与软件未来的深度问答
后端·低代码·aigc
颜如玉12 小时前
HikariCP:Dead code elimination优化
后端·性能优化·源码
考虑考虑12 小时前
Jpa使用union all
java·spring boot·后端
bobz96513 小时前
virtio vs vfio
后端
Rexi14 小时前
“Controller→Service→DAO”三层架构
后端
bobz96514 小时前
计算虚拟化的设计
后端
深圳蔓延科技14 小时前
Kafka的高性能之路
后端·kafka
Barcke14 小时前
深入浅出 Spring WebFlux:从核心原理到深度实战
后端