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

}
相关推荐
CoderYanger1 分钟前
动态规划算法-简单多状态dp问题:15.买卖股票的最佳时机含冷冻期
开发语言·算法·leetcode·动态规划·1024程序员节
天天摸鱼的java工程师3 分钟前
JDK 25 到底更新了什么?这篇全景式解读带你全面掌握
java·后端
非鱼feiyu8 分钟前
自关联数据表查询优化实践:以 Django + 递归 CTE 构建树结构为例
数据库·后端·django
零日失眠者14 分钟前
这5个Python库一旦掌握就离不开
后端·python
幌才_loong17 分钟前
.NET8 × Redis 实战宝典:从配置到落地,搞定高并发缓存就这篇!
后端·.net
韩曙亮20 分钟前
【Web APIs】JavaScript 执行机制 ( 单线程特点 | 同步任务与异步任务 | 同步先行、异步排队 | 事件循环机制 )
开发语言·前端·javascript·异步任务·同步任务·web apis·js 引擎
用户83562907805120 分钟前
如何使用 Python 从 Word 文档中批量提取表格数据
后端·python
洲星河ZXH33 分钟前
Java,比较器
java·开发语言·算法
l***370935 分钟前
spring 跨域CORS Filter
java·后端·spring
aiopencode1 小时前
APP 公钥与 MD5 信息在工程中的价值 一次签名排查过程带来的经验总结
后端