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

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),样例类是种特殊的类,经过优化以用于模式匹配。

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

    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,表示没有值。 ​

    68910

    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.4K20

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

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

    18010

    有趣的Scala模式匹配

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

    1.2K40

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

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

    1.9K30

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

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

    95120

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

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

    82910

    Scala中的异常处理和模式匹配

    异常处理和模式匹配 在Scala中,异常处理是一种常见的编程技术,用于捕获和处理程序运行时可能出现的错误。而模式匹配是一种强大的语言特性,可以用于根据不同的情况进行分支处理。...在本例中,我们使用模式匹配来匹配ArithmeticException类型的异常,并返回0作为结果。...自定义异常类型 除了处理标准的异常类型,我们还可以自定义异常类型,并使用模式匹配来处理。...在catch块中,我们使用模式匹配来匹配MyException类型的异常,并打印出异常的错误信息。...在catch块中,我们使用模式匹配来匹配IllegalArgumentException和RuntimeException类型的异常,并打印出异常的错误信息。

    29910

    【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

    82120

    Scala中的模式匹配:强大的匹配和转换工具

    Scala中的模式匹配:强大的匹配和转换工具 在Scala编程语言中,模式匹配是一种强大的工具,用于匹配和转换数据。它可以用于匹配不同类型的值、解构复杂的数据结构以及处理不同的情况。...本文将介绍如何在Scala中使用模式匹配,并通过具体的代码和运行结果进行演示。 基本模式匹配 让我们从一个简单的例子开始,展示如何使用模式匹配来处理不同的情况。...在函数体中,我们使用match关键字来进行模式匹配。根据num的值,我们使用case语句来匹配不同的情况。...根据参数的值,模式匹配将选择相应的case语句进行执行,并打印出相应的结果。 类型匹配 除了匹配特定的值,模式匹配还可以用于匹配不同的类型。...模式匹配将根据参数的类型选择相应的case语句进行执行,并打印出相应的结果。 解构复杂数据结构 除了基本类型和简单的数据结构,模式匹配还可以用于解构复杂的数据结构。

    27410

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

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

    2.6K20

    (数据科学学习手札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中关于模式匹配的一些基础内容的简单介绍,如有笔误,望指出。

    81640

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

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

    2.2K20
    领券