首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Scala 模式匹配

Scala 提供了强大的模式匹配机制,应用也非常广泛。 一个模式匹配包含了一系列备选项,每个都开始于关键字 case。每个备选项都包含了一个模式及一到多个表达式。箭头符号 => 隔开了模式和表达式。...以下是一个简单的整型值模式匹配实例: object Test { def main(args: Array[String]) { println(matchTest(3))...match 表达式通过以代码编写的先后次序尝试每个模式来完成计算,只要发现有一个匹配的case,剩下的case不会继续匹配。...实例中第一个 case 对应整型数值 1,第二个 case 对应字符串值 two,第三个 case 对应类型模式,用于判断传入的值是否为整型,相比使用isInstanceOf来判断类型,使用模式匹配更好...---- 使用样例类 使用了case关键字的类定义就是就是样例类(case classes),样例类是种特殊的类,经过优化以用于模式匹配

85120
您找到你想要的搜索结果了吗?
是的
没有找到

Scala 【 12 模式匹配

模式匹配Scala模式匹配除了可以对值进行匹配之外,还可以对类型进行匹配、对 Array 和 List 的元素情况进行匹配、对 case class 进行匹配、甚至对有值或没值(Option)...模式匹配Scala 是没有 Java 中的 switch case 语法的,相对应的,Scala 提供了更加强大的 match case 语法,即模式匹配,类替代 switch case,match...Scala 的 match case Java 的 switch case 最大的不同点在于,Java 的 switch case 仅能匹配变量的值,比1、2、3等;而 Scala 的 match...} } case class模式匹配Scala 中提供了一种特殊的类,用 case class 进行声明,中文也可以称作样例类。...} } Option模式匹配Scala 有一种特殊的类型,叫做 Option。Option 有两种值,一种是 Some,表示有值,一种是 None,表示没有值。 ​

54110

scala 模式匹配的几个模式

Scala模式匹配是类似正则匹配的的模式匹配,但是不仅仅如此,它还可以匹配对象的内在的构建形式....模式匹配就是反向的构造器,可以通过嵌套器来构造对象,在构造时提供一些参数 例如: val list = List(3,6) list: List[Int] = List(3, 6) scala> list...常量模式 包含常量变量,常量字面量都可以 val site = "alibaba.com" site: String = alibaba.com scala> site match { case "...变量模式 site match { case whateverName => println(whateverName) } 上面把要匹配的 site对象用 whateverName 变量名代替,所以它总会匹配成功...单纯的通配符模式通常在模式匹配的最后一行出现,case _ => 它可以匹配任何对象,用于处理所有其它匹配不成功的情况。

1.2K20

Scala基础入门(十二 ) Scala 模式匹配

Scala 中提供了基于是否匹配某个条件来执行相应动作的模式匹配,这很类似其他语言的switch-case语句。...所有的匹配表达式都以要匹配的 值 开头, 后面跟着 match 关键字、左花括号、和一组可能匹配到的项以及关联的动作,最后以右花括号结尾。...每一组可能匹配到的项以 关键字case 开头、后面跟匹配表达式,该表达式的值如果与目标值匹配, => 右边的表达式就会作为该match 的结果。...我们以一个划分学生期末成绩等级的例子来解释 Scala 模式匹配的用法: package com.byron4j.scala.basic /** * Scala 模式匹配的用法 */ object...score 的值, score 值为90,则A作为方法执行结果结果;score 值为80,则B作为方法执行结果…下划线_通常用于最后以一个匹配表达式中,指得失如果前面的所有值都未能匹配到,则默认该条件的匹配结果作为方法执行结果

12910

有趣的Scala模式匹配

Scala提供了一种类比switch/case更为强大的选择匹配模式,写作 选择语句 match {可选分支} 它被称为模式匹配模式匹配包含了一系列以case关键字开头的分支,每一个分支包含一个模式或者是多个表达式...模式有很多种,例如常量模式('*',1),变量模式(可以匹配任何值),通配模式(又见面了,'_'符号),构造方法模式(类似于样例类的初始化)等等。...(1) 1 scala> matchTest(2) 2 scala> matchTest(4) 3 match表达式会逐个尝试case里的模式直到匹配为止,如果没有匹配上就会抛出异常MatchError...上例所展示的就是常量模式的常量1,2去匹配,还使用了_通配符匹配任何对象(建议放在最后面,因为Scala模式匹配是按顺序的)。...由构造方法匹配自然而然就可以引申为序列模式匹配和元组匹配

1K40

Scala 高阶(九):Scala中的模式匹配

常量 类型 数组 列表 元组 对象及样例类 四、声明变量中的模式匹配 五、for表达式模式匹配 六、偏函数模式匹配 ---- 本次主要分享Scala中关于模式匹配的内容,Scala中的模式匹配类似于Java...中的switch语法,但是Scala在基于Java的思想上补充了特有的功能。...二、模式守卫 需要进行匹配某个范围的数据内容的时候,可以在模式匹配中进行模式守卫的操作,类似于for推倒式中的循环守卫。...Scala 中,模式匹配可以匹配所有的字面量,包括字符串,字符,数字,布尔值等等。...alice, 20",会默认调用 unapply 方法(对象提取器),student 作为 unapply 方法的参数,unapply 方法将 student 对象的 name 和 age 属性提取出来,

1.5K30

Scala专题系列 (八) : 模式匹配

模式匹配包括一系列备选项,每个替代项以关键字大小写为单位。每个替代方案包括一个模式和一个或多个表达式,如果模式匹配,将会进行评估计算。箭头符号=>将模式表达式分离。...中所有类的超类,表示任意类型), 注意看函数体 x = match{ case 1 => "one" } 这个就是scala模式匹配的语法结构, 首先变量.match(选择器) 后面跟着一个花括号,...元组模式用于匹配scala中的元组内容,用于匹配元组类型的变量内容。...通配符(_)不同的是,Scala把变量绑定在匹配的对象上。...元组模式匹配元祖 类型模式匹配变量的类型 Option 类型 Option类型在Scala程序中经常使用,可以将其Java中可用的null值进行比较,表示null值。

81420

scala快速入门系列【模式匹配

本篇作为scala快速入门系列的第二十九篇博客,为大家带来的是关于模式匹配的内容。 ?...---- 模式匹配 scala中有一个非常强大的模式匹配机制,可以应用在很多场景: switch语句 类型查询 使用模式匹配快速获取数据 简单模式匹配 在Java中,有switch...---- 匹配样例类 scala可以使用模式匹配匹配样例类,从而可以快速获取样例类中的成员数据。后续,我们在开发Akka案例时,还会用到。...---- 匹配集合 scala中的模式匹配,还能用来匹配集合。 1.匹配数组 示例 依次修改代码定义以下三个数组 ? 使用模式匹配上述数组 参考代码 ?...使用模式匹配上述元素 参考代码 ? ---- 变量声明 在定义变量的时候,可以使用模式匹配获取数据。

75210

Scala篇】--Scala中Trait、模式匹配、样例类、Actor模型

一、前述 Scala Trait(特征) 相当于 Java 的接口,实际上它比接口还功能强大。 模式匹配机制相当于java中的switch-case。...二、具体阐述 trait特性 1、概念理解 Scala Trait(特征) 相当于 Java 的接口,实际上它比接口还功能强大。 接口不同的是,它还可以定义属性和方法的实现。...一般情况下Scala的类可以继承多个Trait,从结果来看就是实现了多重继承。Trait(特征) 定义的方式类类似,但它使用的关键字是 trait。...match       1、概念理解:          Scala 提供了强大的模式匹配机制,应用也非常广泛。        ...,还可以匹配类型 * 2.模式匹配中,如果匹配到对应的类型或值,就不再继续往下匹配 * 3.模式匹配中,都匹配不上时,会匹配到 case _ ,相当于default */ def

69020

Scala:样例类、模式匹配、Option、偏函数、泛型(三)

Scala:样例类、模式匹配、Option、偏函数、泛型 课程目标 掌握样例类的使用 掌握模式匹配的使用 1....模式匹配 scala中有一个非常强大的模式匹配机制,可以应用在很多场景: switch语句 类型查询 使用模式匹配快速获取数据 3.1 简单模式匹配 在Java中,有switch关键字,可以简化if条件判断语句...") } 3.4 匹配样例类 scala可以使用模式匹配匹配样例类,从而可以快速获取样例类中的成员数据。...") } } 3.5 匹配集合 scala中的模式匹配,还能用来匹配集合。...提取器(Extractor) 我们之前已经使用过scala中非常强大的模式匹配功能了,通过模式匹配,我们可以快速匹配样例类中的成员变量。例如: // 1.

2.2K20

(数据科学学习手札49)Scala中的模式匹配

一、简介   Scala中的模式匹配类似Java中的switch语句,且更加稳健,本文就将针对Scala模式匹配的一些基本实例进行介绍: 二、Scala中的模式匹配 2.1 基本格式   Scala模式匹配的基本格式如下...,会直接将传入的待匹配对象传递给该新变量,但该新变量的作用域只限于match语句内,在外无法调用; 2.4 匹配数组元组 数组:   在对数组进行模式匹配时,可以配合通配符完成一些模糊匹配的功能: import...} } val t = (3,"Scala") fitTuple(t) } } 2.5 异常处理模式匹配   在前面的(数据科学学习手札45)Scala基础知识中提到过...Scala中的错误处理机制,其实catch{}语句中的各条执行语句就是一条条的模式匹配语句,这里便不再赘述。   ...以上就是Scala中关于模式匹配的一些基础内容的简单介绍,如有笔误,望指出。

71040

03.Scala:样例类、模式匹配、Option、偏函数、泛型

Scala:样例类、模式匹配、Option、偏函数、泛型 课程目标 掌握样例类的使用 掌握模式匹配的使用 1....模式匹配 scala中有一个非常强大的模式匹配机制,可以应用在很多场景: switch语句 类型查询 使用模式匹配快速获取数据 3.1 简单模式匹配 在Java中,有switch关键字,可以简化if条件判断语句...") } 3.4 匹配样例类 scala可以使用模式匹配匹配样例类,从而可以快速获取样例类中的成员数据。...") } } 3.5 匹配集合 scala中的模式匹配,还能用来匹配集合。...提取器(Extractor) 我们之前已经使用过scala中非常强大的模式匹配功能了,通过模式匹配,我们可以快速匹配样例类中的成员变量。例如: // 1.

2K20

模式匹配

模式匹配 如果在不设置全文搜索的情况下,如何过滤查询结果,您会选择哪种方法?...LIKE也许是最容易想到的: SELECT * FROM people WHERE name LIKE 'Sam%'; // name以“Sam”开头 也可以使用ILIKE进行忽略大小写的匹配: SELECT...SIMILAR TO和LIKE类似,但他使用SQL的正则表达式标准定义来进行匹配: SELECT * FROM people WHERE name SIMILAR TO '(Pat|Sam)%'; //...风格的正则表达式,也可以使用诸如~(区分大小写)和~*(不区分大小写)之类的运算符: SELECT * FROM people WHERE name ~* '(Pat|Sam).*'; 该小贴士只是引起兴趣,模式匹配的方法还有很多...但是在大多数情况下PG的正则表达式和模式匹配就可以了。 原文: https://postgresweekly.com/issues/365

93630

模式匹配

匹配操作符(绑定操作符): =~、!~ =~检验匹配是否成功:result= var =~ /abc/;若在该字符串中找到了该模式,则返回非零值,即true,不匹配则返回false。 !~则相反。...模式中的特殊字符 字符 + :一个或多个相同的字符,如:/ab+/在字符串abbc中匹配的将是abb,而不是ab。 字符 *和? :它们+类似,区别在于*匹配0或任意个相同字符,?...转义字符\ 如果你想把模式中的特殊字符作为普通字符,须在其前加斜线“\”。如:/\*+/中\*即表示字符*,而不是上面提到的一个或多个字符的含义。反斜杠表示为/\//。...锚模式 ^ 或 \A仅匹配串首$ 或 \Z仅匹配串尾\b匹配一个单词边界,也就是指单词和空格间的位置, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。...~; 模式中的特殊字符。

1.6K30
领券