匹配列表 | 学习笔记

简介: 快速学习匹配列表

开发者学堂课程【Scala 核心编程 - 进阶匹配列表学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/610/detail/9073


匹配列表


应用案例

代码:

for(list<-Array(List(0),List(1,0),List(0,0,0),List(1,0,0))){

Val result=List match{

case 0::Nil=>“0”//

case X::y::Nil=>x+“”+y//

case 0::tail=>“0...”//

case _=>“something else”

}

println(result)

}

这个数组里面有很多 List, 然后循环遍历,这面有 List 我mach,如果这个 List 是以0打头的,就返回一个0,如果至少有2个元素,我们就返回case X::y::Nil=>x+“”+y//,如果它是以0,就返回一个0后面有任意就输入 tail。

tail 就代表后面有任意的,如果他不满足这些条件就返回一个 something else。

也就说这种方式 List 匹配,演示一下,匹配列表的案例 object MathList

image.png

object MathList  

def main (args:Array [string]):Unit={

for (List<-Array(List(0),List(1,0),List(0,0,0),List(1,0,0))){

val result=List match{

case 0::Nil=>“0”//

case X::y::Nil=>x+“”+y//

case 0::tail=>“0...”//

case -=>“something else”

}

//1.0

//2.10

//3.0....

//4.something else

然后我们直接去的输出,第一个 List0应该匹配到 Nil, 因此第一个结果就是0,第二个1,0,应该匹配 x::y,x,y 不是固定的,这里写 a,b 的话,后面也要写 a,b只要是变量就行,第三个0,0,0应该跟 tail 匹配,tail 可以变,这个地方没有做要求,第四个1,0,0匹配不到,所以就应该是 something else,执行之后这个输出结果和我们想的是一样的。

Println(resnlt)

请思考,如果要匹配 List(88)这样只含有一个元素的列表要怎么写呢?

很简单,如果我们要完成这个功能的话,其实可以在这里增加一个 List(88),因为他只有一个元素,就写一个 x Nil,注意把这个 Nil 写上

package com.atguigu.chapter12

Object Math {

def main(args:Array[string]):Unit={

for(List<-Array(List(1,0),List(88),List(1,0,0))){

val result=List match{

case 0::Nil=>x+“0”//

case X::y::Nil=>x+“”+y//

case 0::tail=>“0...”//

case X::Nil=>x

case _=“something else”

}

//1.0

//2.1 0

//3.0...

//4.something else

println(result)

}

}

匹配列表的功能很强大,到匹配列表用到的是很多的。

相关文章
|
Oracle 关系型数据库
集成平台即服务(iPaaS)软件
本文研究全球及中国市场集成平台即服务(iPaaS)软件现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美、欧洲、中国、日本、东南亚和印度等地区的现状及未来发展趋势
|
人工智能 安全 算法
云效DevOps实践-代码扫描
9.18,13:00云效分论坛不见不散!
2061 0
云效DevOps实践-代码扫描
|
数据采集 JavaScript 前端开发
Vue面试题二】、说说你对SPA (单页应用) 的理解?
这篇文章详细介绍了单页应用(SPA)的概念、与多页应用(MPA)的区别、SPA的优缺点,并提供了实现SPA的基本方法和为SPA应用进行搜索引擎优化(SEO)的几种策略。
Vue面试题二】、说说你对SPA (单页应用) 的理解?
|
11月前
|
存储 Oracle 关系型数据库
|
11月前
|
存储 SQL 关系型数据库
MySQL 给查询结果增列并自定义列数据
MySQL 给查询结果增列并自定义列数据
1442 2
串口通讯工具minicom-在银河麒麟操作系统下的使用
在银河麒麟OS中调试神州数码网络设备,如CS6200交换机,使用`minicom`工具。连接CONSOLE线,打开终端,用`sudo minicom -s`进入配置。设置串口为`ttyUSB0`(用`ls /dev`查找),波特率设为115200。保存配置后,开始设备配置。
串口通讯工具minicom-在银河麒麟操作系统下的使用
|
人工智能 Linux 云计算
【专访阿里云】云智融合转型期,国产服务器操作系统路在何方?
在云智融合转型趋势引领服务器操作系统迭代升级的时期,国产服务器操作系统社区该如何应对?
|
存储 C语言 Perl
为什么要使用交叉引用?西门子S7-200 SMART的交叉引用表、字节使用表、位使用表如何操作?
本篇我们来学习西门子S7-200 SMART的交叉引用表、字节使用表、位使用表如何操作。首先我们先来看为什么要使用交叉引用:通过交叉引用窗口可以查看程序中参数赋值和存储器使用情况,避免重复赋值。
为什么要使用交叉引用?西门子S7-200 SMART的交叉引用表、字节使用表、位使用表如何操作?
|
机器学习/深度学习 数据采集 数据挖掘
数据分析从0到1----Pandas篇(一)
数据分析从0到1----Pandas篇
216 0
|
Java 编译器
编程基础|如何解决编程中的代码错误问题
编程基础|如何解决编程中的代码错误问题
496 0