当前位置: 首页 > news >正文

Scala模式匹配——高阶用法

(一)scala的模式匹配

(1)常量

(2)变量

(3)构造器

(4)序列

(5)元组

(6)类型

(7)变量绑定

(二)Scala模式匹配的语法格式:

X match{

case1

case2

}

package test7import scala.io.StdInobject test7_1 {//从控制台读入一个数字a,使用(StdiIn.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 y if y>= 4 && y<= 8 => println(s"[4 - 8]")case _ => println("其他")}}
}
package test7import scala.io.StdInobject test7_1 {//从控制台读入一个数字a,使用(StdiIn.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 y if y>= 4 && y<= 8 => println(s"[4 - 8]")
//      case _ => println("其他")
//    }
//  }
//  def main(args: Array[String]): Unit = {
//    for (i <- 2000 to 2040){
//      i match {
//        case year if year%4 == 0 && year%100 != 0 || year%400 == 0 =>println(s"${year}是闰年")
//        case _ =>  println(s"${i}不是闰年")
//
//      }
//    }
//  }// 1. 匹配类型
//  def main(args: Array[String]): Unit = {
//    val i:Int =  1
//    val b: Boolean = false
//
//    //Any任意的
//    //val x:Any = "abc"val x:Any = i
//
//    val x:Any = b
//    x match {
//      case _:Int => println(s"$x 是Int类型的") // _:Int 表示变量是Int类型
//      case _:Boolean=>println(s"$x 是Boolean类型的")
//      case _ => println("其他")
//
//    }
//  }// 2. 匹配数组//  def main(args: Array[String]): Unit = {
//    var arr1 = Array(1,3,4)//三个元素,且第一个为一
//    var arr2 = Array(1,6,7)
//    var arr3 = Array(0,1,6,7,3)
//
//    var arr = Array(1)
//    arr match {
//      case Array(0) => println("1个元素,且第一个为0")
//      case Array(1,x,y) => println(s"三个元素,且第一个为一,第二个为${x},第三个为${y}")
//      case Array(1, _*) => println("n个元素,且第一个为1")
//      case _ => println("其他")
//    }
//  }// 3. 匹配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")
//}}

相关文章:

Scala模式匹配——高阶用法

&#xff08;一&#xff09;scala的模式匹配 &#xff08;1&#xff09;常量 &#xff08;2&#xff09;变量 &#xff08;3&#xff09;构造器 &#xff08;4&#xff09;序列 &#xff08;5&#xff09;元组 &#xff08;6&#xff09;类型 &#xff08;7&#xff09;…...

【简单好抄保姆级教学】javascript调用本地exe程序(谷歌,edge,百度,主流浏览器都可以使用....)

javascript调用本地exe程序 详细操作步骤结果 详细操作步骤 在本地创建一个txt文件依次输入 1.指明所使用注册表编程器版本 Windows Registry Editor Version 5.00这是脚本的第一行&#xff0c;指明了所使用的注册表编辑器版本。这是必需的&#xff0c;以确保脚本能够被正确解…...

C#热更原理与HybridCLR

一、Mono的诞生 在Mono之前,C#虽然很好,但是只在windows家族平台上使用,就这点C#与Java就无法比。于是微软公司向ECMA申请将C#作为一种标准。在2001年12月,ECMA发布了ECMA-334 C#语言规范。C#在2003年成为一个ISO标准(ISO/IEC 23270)。意味着只要你遵守CLI(Common Lang…...

arcgis for js点击聚合要素查询其包含的所有要素

功能说明 上一篇讲了实现聚合效果, 但是点击聚合效果无法获取到该聚合点包含的所有点信息 这一篇是对如何实现该功能的案例 实现 各属性说明需要自行去官网查阅 官网案例 聚合API 没空说废话了, 加班到12点,得休息了, 直接运行代码看效果就行, 相关重点和注意事项都在代码注…...

k8s Init:ImagePullBackOff 的解决方法

kubectl describe po (pod名字) -n kube-system 可查看pod所在的节点信息 例如&#xff1a; kubectl describe po calico-node-2lcxx -n kube-system 执行拉取前先把用到的节点的源换了 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-EOF {"re…...

HASH256开源代码计算错误问题

计算量超500KB报错 OTA升级中可能会涉及到CRC、hash校验等算法&#xff0c;小编从网上抄到了HASH256的源码&#xff0c;拿来使用的时候却发现了一个问题&#xff0c;当源文件约大于500KB的时候会发现其计算出的hash值出现错误。 经过实际测试得知&#xff0c;当源文件大于约50…...

对象流—ObjectInputStream 和 ObjectOutputStream

对象流(ObjectInputStream和ObjectOutputStream)是Java中用于读写对象的流&#xff0c;可以将对象直接写入到流中&#xff0c;或者从流中读取对象。 ObjectOutputStream将对象序列化为字节流&#xff0c;可以将对象写入文件或网络流中。ObjectInputStream则将字节流反序列化为…...

【Fargo】27:ffmpeg ffprobe 和python分析h264文件并绘制

从帧和包两个层面进行分析。帧级别分析 ffprobe 可以读取264文件信息 -Y9KP MINGW64 /d/XTRANS/thunderbolt/ayame/zhb-bifrost/player-only (main) $ ffprobe test.h264 ffprobe version N-116778-g7e4784e40c-20240827 Copyright (c) 2007-2024 the FFmpeg developersbuilt …...

Debezium Engine监听binlog实现缓存更新与业务解耦

飞书文档 解决缓存与数据源数据不一致的方案有很多, 各有优缺点; 1.0、旁路缓存策略, 直接同步更新 读取流程&#xff1a; 查询缓存。如果缓存命中&#xff0c;则直接返回结果。如果缓存未命中&#xff0c;则查询数据库。将数据库查询到的数据写入缓存&#xff0c;并设置一个…...

mysql_题库详解

1、如何创建和删除数据库&#xff1f; 1&#xff09;创建数据库 CREATE DATABASE 数据库名; 2&#xff09;删除数据库 drop database 数据库名; 2、MyISAM与InnoDB的区别&#xff1f; 1&#xff09;事务&#xff1a;MyISAM 不支持事务 InnoDB 支持 2&#xff09;行锁/表锁&a…...

docker查询是否运行

您可以通过运行以下命令来检查Docker是否正在运行&#xff1a; docker info 或者&#xff1a; docker ps 如果Docker正在运行&#xff0c;docker info将显示Docker的详细信息&#xff0c;而docker ps将列出当前运行的容器。如果Docker没有运行&#xff0c;这些命令将会返回错误…...

【AI日记】24.11.29 kaggle 比赛 Titanic-2 | 鼓励自己

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 核心工作 内容&#xff1a;学习 kaggle 入门比赛 Titanic - Machine Learning from Disaster&#xff0c;学习机器学习课程备注&#xff1a;入门比赛有很多 notebook 适合我这种新手学习&#xff0c;尤其是那…...

SVG无功补偿装置MATLAB仿真模型

“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 模型简介 SVG&#xff08;又称ASVG 或STATCOM&#xff09;是Static Var Generator 的缩写&#xff0c;叫做静止无功发生器。也是做无功补偿的&#xff0c;比SVC 更加先进。其基本原理是将自换相桥式电路通过电抗器或…...

2039:【例5.6】冒泡排序

【题目描述】 编程输入n(1≤n≤20)个小于1000非负整数&#xff0c;然后自动按从大到小的顺序输出。&#xff08;冒泡排序&#xff09; 【输入】 第一行&#xff0c;数的个数n; 第二行&#xff0c;n个非负整数。 【输出】 由大到小的n个非负整数&#xff0c;每个数占一行。 【输…...

yum源问题的解决方案

linux课堂作业 问题描述 yum 直接安装tree的问题截图 这个错误表明你的系统没有正确注册到 Red Hat Subscription Management&#xff08;这个问题不用管&#xff09;&#xff0c;也没有配置有效的 YUM 软件仓库&#xff0c;因此无法安装或更新软件包。 解决方案&#xff08…...

一文解析Kettle开源ETL工具!

ETL&#xff08;Extract, Transform, Load&#xff09;工具是用于数据抽取、转换和加载的软件工具&#xff0c;用于支持数据仓库和数据集成过程。Kettle作为传统的ETL工具备受用户推崇。本文就来详细说下Kettle。 一、Kettle是什么&#xff1f; Kettle 是一款开源的 ETL&#x…...

微积分复习笔记 Calculus Volume 2 - 3.1

The first 2 chapters of volume 2 are the same as those in volume 1. Started with Chapter 3. 3.1 Integration by Parts - Calculus Volume 2 | OpenStax...

linux环境搭建

1、**连接外网** ssh在192.168.4.x上运行sudo ip link set ens160 down ssh切换到192.168.3.x(外网ip)&#xff0c;运行sudo ip route add default via 192.168.2.1 dev ens192 onlink //连接外网 使用完外网后 ssh在192.168.3.x上运行sudo ip link set ens160 up ssh在1…...

黑马程序员Java笔记整理(day05)

1.面向对象编程 2.用法 3.对象是什么 4.对象在计算机中是啥 5.无参与有参构造器 小结: 6.this的作用 7.小结 8.封装 9.小结 10.实体类 11.小结 12.static 13.小结 14.static修饰方法 15.static应用前景 16.几个注意事项 17.java中可以直接用类的名字创建数组&#xff0c;如: M…...

DM达梦管理工具拖出空白区块,无法关闭

1. 出现问题&#xff1a;DM达梦管理工具拖出空白区块&#xff0c;无法关闭。 2. 解决方法 新建查询页&#xff0c;把查询页拖到空白区块里&#xff0c;完全覆盖空白区块。之后空白区块会变成查询页&#xff0c;右上角会出现叉号&#xff0c;点击叉号关闭就行。 3. 后记 达梦…...

Linux系统 异常控制流

文章目录 前言异常1. **中断&#xff08;interrupt&#xff09;**2. **陷阱和系统调用&#xff08;trap&#xff09;**3. **故障&#xff08;fault&#xff09;**4. **终止&#xff08;abort&#xff09;** 进程与信号非本地跳转 前言 下面内容大部分来自《深入理解计算机系统…...

Linux环境下配置neo4j图数据库

1.下载安装包 openjdk-11.0.1_linux-x64_bin.tar.gz neo4j-community-4.2.19-unix.tar.gz 2.之前配置好的配置文件 neo4j.conf 3.安装 3.1-jdk11的安装&#xff08;jdk1.8不够用&#xff09; 解压缩 tar -zxvf openjdk-11.0.1_linux-x64_bin.tar.gz修改系统环境变量 打开pro…...

python打包深度学习虚拟环境

今天师兄让我把环境打包发给他&#xff0c;我才知道可以直接打包深度学习虚拟环境&#xff0c;这样另一个人就不用辛辛苦苦的去装环境了&#xff0c;我们都知道有些论文他需要的环境很难装上。比如装Apex&#xff0c;装 DCN&#xff0c;mmcv-full 我现在把3090机子上的ppft虚拟…...

关于IDE的相关知识之一【使用技巧】

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///C爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于ide使用技巧的相关内容&#xff01; 关于…...

Redis开发03:常见的Redis命令

1.输入以下命令&#xff0c;启动redis。 sudo service redis-server start 如果你是直接安装在WSL的&#xff0c;搜索栏搜索Ubuntu或者点击左下角Windows图表找到U那一栏&#xff0c;直接打开Ubentu&#xff0c;输入账密后&#xff0c;输入“sudo service redis-server start”…...

[OS] A4-前菜介绍

从你的描述来看&#xff0c;这段话是给你的一些 预备知识 和 mkfs工具的使用 提示&#xff0c;帮助你了解如何构建和管理文件系统&#xff0c;特别是关于 xv6 文件系统的一些基本操作。 我会通过比喻和通俗化的方式逐步解释&#xff1a; 预备知识&#xff1a;xv6 文件系统的基…...

2024农历年余下的数模比赛名单已出炉!

数学建模比赛季又来了&#xff01;作为一名资深的数学建模辅导老师&#xff0c;我想对你们说&#xff1a;这不仅是挑战智商的时候&#xff0c;也是展现团队合作力、数据分析能力和逻辑思维的最佳舞台&#xff01;&#x1f4a1; 如果你是建模新手&#xff0c;或者想让自己的比赛…...

在开发环境中,前端(手机端),后端(电脑端),那么应该如何设置iisExpress

首先&#xff0c;要想手机端应用能成功请求后端&#xff0c;两个设备至少需在同一个局域网内&#xff0c;且IP地址互通&#xff1b; 因为ajax是http(s)://IP地址端口号的方式请求&#xff0c;但是iisExpress默认是localhost如何解决&#xff0c;并没有IP地址&#xff0c;所以手…...

2.安装docker、docker compose

1. 安装依赖包 yum install -y yum-utils device-mapper-persistent-data lvm22. 设置阿里云docker-ce镜像源 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3. docker-ce 安装 yum install -y docker-ce4. docker-compo…...

windows中idea选择bash作为控制台指令集,但是系统环境变量未在其中生效处理

1. 引言 在windows系统中安装node 以及npm时配置其环境&#xff0c;使用window环境变量的配置方式在系统环境变量设置的地方设置了环境变量如下图1-1&#xff0c;设置后在idea中的控制台通过 echo $PATH 查看环境变量发先跟系统中配置的不一致&#xff0c;而且node -v npm -v指…...

如何通过 ADB 安装 xapk

Android开发这么久,今天发现还能这么操作!😂 记录通过ADB安装xapk、apks的两种方式: 1.ADB命令安装使用APK-Splits技术分包的应用程序 这位大佬的方式步骤较为繁琐,不过兼容性应该较好,亲测成功安装。 2.How to install xapk, apks, or multiple-apks via adb? 这个…...

Docker使用教程

Docker 是一个开源的容器化平台&#xff0c;用于开发、打包和分发应用程序。它允许将应用及其依赖环境打包成容器&#xff0c;从而实现跨平台的便捷部署。下面是一个简单的 Docker 使用教程&#xff0c;涵盖从安装到基本命令的使用。 1. 安装 Docker Windows / MacOS 访问 D…...

我的创作纪念日

一、机缘 成为创作者的初衷是从学习C/C语法与数据结构过程中获得的灵感。在日常学习和项目实践中&#xff0c;我发现这些知识既丰富又复杂&#xff0c;对初学者而言尤为困难。因此&#xff0c;我决定通过博客记录自己的学习过程、解决思路以及代码实现&#xff0c;帮助更多人在…...

软件质量保证——单元测试之白盒技术

笔记内容及图片整理自XJTUSE “软件质量保证” 课程ppt&#xff0c;仅供学习交流使用&#xff0c;谢谢。 程序图 程序图定义 程序图P&#xff08;V,E&#xff09;&#xff0c;V是节点的集合&#xff08;节点是程序中的语句或语句片段&#xff09;&#xff0c;E是有向边的集合…...

redis中的哨兵

redis中的哨兵 一、哨兵机制的概念二、redis哨兵的部署2.1 docker的安装2.2 编排redis主从节点2.3 配置哨兵节点 三、redis哨兵的选举机制3.1 redis-master宕机之后的情况3.2 重启redis-master后的情况 四、redis哨兵机制的原理4.1主观下线4.2客观下线4.3选举leader节点4.4选出…...

开源对象存储新选择:在Docker上部署MinIO并实现远程管理

文章目录 前言1. Docker 部署MinIO2. 本地访问MinIO3. Linux安装Cpolar4. 配置MinIO公网地址5. 远程访问MinIO管理界面6. 固定MinIO公网地址 前言 MinIO是一个开源的对象存储服务器&#xff0c;可以在各种环境中运行&#xff0c;例如本地、Docker容器、Kubernetes集群等。它兼…...

15分钟做完一个小程序,腾讯这个工具有点东西

我记得很久之前&#xff0c;我们都在讲什么低代码/无代码平台&#xff0c;这个概念很久了&#xff0c;但是&#xff0c;一直没有很好的落地&#xff0c;整体的效果也不算好。 自从去年 ChatGPT 这类大模型大火以来&#xff0c;各大科技公司也都推出了很多 AI 代码助手&#xff…...

houdini肌肉刷pin点的方法

目标&#xff1a;产生gluetoanimation这个属性 主要节点&#xff1a;attribute paint(或者muscle paint) 步骤1&#xff1a; 导入肌肉资产 导入的是rest shape的肌肉 在有侧边栏可以打开display group and attribute list&#xff0c;方便查看group。不同的肌肉块按照muscl…...

Ubuntu20.04安装NVIDIA显卡驱动

Ubuntu20.04安装NVIDIA显卡驱动 参考资料&#xff1a;https://blog.csdn.net/weixin_39244242/article/details/136282614?fromshareblogdetail&sharetypeblogdetail&sharerId136282614&sharereferPC&sharesourceqq_37397652&sharefromfrom_link 成功配置…...

k8s删除网络组件错误

k8s集群删除calico网络组件重新部署flannel网络组件&#xff0c;再部署pod后出现报错不能分配ip地址 plugin type"calico" failed (add): error getting ClusterInformation: connection is unauthorized: Unauthorized 出现该问题是因为删除网络组件后&#xff0c;网…...

民锋视角:多元化策略实现资产稳健增长

在全球化经济的推动下&#xff0c;市场呈现出高度的复杂性与多样性。面对不同经济周期和市场动态&#xff0c;民锋以多元化投资策略为核心&#xff0c;帮助投资者在不确定性中实现资产的稳健增长。 一、多元化策略的核心价值 降低单一市场风险 单一资产或市场的表现可能因不可…...

[已解决]Visual Studio 2022中如何同时打开多个项目多个独立窗口

同时运行两个VS2022程序&#xff0c;即点击运行Visual Studio 2022.exe后&#xff0c;再点击运行一次运行Visual Studio 2022.exe&#xff0c;效果如图...

11、PyTorch中如何进行向量微分、矩阵微分与计算雅克比行列式

文章目录 1. Jacobian matrix2. python 代码 1. Jacobian matrix 计算 f ( x ) [ f 1 x 1 2 2 x 2 f 2 3 x 1 4 x 2 2 ] , J [ ∂ f 1 ∂ x 1 ∂ f 1 ∂ x 2 ∂ f 2 ∂ x 1 ∂ f 2 ∂ x 2 ] [ 2 x 1 2 3 8 x 2 ] \begin{equation} f(x)\begin{bmatrix} f_1x_1^22x_2\\…...

51c自动驾驶~合集35

我自己的原文哦~ https://blog.51cto.com/whaosoft/12206500 #纯视觉方案的智驾在大雾天还能用吗&#xff1f; 碰上大雾天气&#xff0c;纯视觉方案是如何识别车辆和障碍物的呢&#xff1f; 如果真的是纯纯的&#xff0c;特头铁的那种纯视觉方案的话。 可以简单粗暴的理解为…...

位图和布隆过滤器

目录 一.位图 1.位图的概念 2.位图的实现 3.位图的应用 二.布隆过滤器 1.布隆过滤器的概念 2.布隆过滤器的实现 3.布隆过滤器的优缺点 三.整体代码 1.bitset.h 2.BloomFilter 3.Hash.cpp 一.位图 1.位图的概念 1.面试题 给40亿个不重复的无符号整数&#xff0c;没…...

Java—I/O流

Java的I/O流&#xff08;输入/输出流&#xff09;是用于在程序和外部资源&#xff08;如文件、网络连接等&#xff09;之间进行数据交换的机制。通过I/O流&#xff0c;可以实现从外部资源读取数据&#xff08;输入流&#xff09;或将数据写入外部资源&#xff08;输出流&#x…...

CSS样式

第一章&#xff1a;CSS类型 1、行内样式 <div style"color:red;font-size:30px;font-weight: 900;font-style: italic;">ABCD</div>注意&#xff1a;行内样式&#xff0c;作用力优先级最高&#xff0c;但是不利于html与css的书写以及修改&#xff0c;会…...

idea_卸载与安装

卸载与安装 卸载1、设置 -> 应用2、查找到应用&#xff0c;点击卸载3、把删除记录和设置都勾选上4、删除其它几个位置的残留 安装1、下载安装包2、欢迎安装 -> Next3、选择安装目录 -> Next4、创建快捷图标和添加到环境变量5、确认文件夹的名称 -> Install6、完成安…...

大数据-237 离线数仓 - 广告业务 需求分析 ODS DWD UDF JSON 串解析

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; Java篇开始了&#xff01; 目前开始更新 MyBatis&#xff0c;一起深入浅出&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff0…...

视觉语言模型(VLM)学习笔记

目录 应用场景举例 VLM 的总体架构包括&#xff1a; 深度解析&#xff1a;图像编码器的实现 图像编码器&#xff1a;视觉 Transformer 注意力机制 视觉-语言投影器 综合实现 训练及注意事项 总结 应用场景举例 基于文本的图像生成或编辑&#xff1a;你输入 “生成一张…...