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

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

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

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

    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...​ Scala 的模式匹配语法,有一个特点在于,可以将模式匹配的默认情况,下划线,替换为一个变量名,此时模式匹配语法就会将要匹配的值赋值给这个变量,从而可以在后面的处理语句中使用要匹配的值 ​...) } } 对 Array 和 List 进行模式匹配 ​ 对 Array 进行模式匹配,分别可以匹配带有指定元素的数组、带有指定个数元素的数组、以某元素打头的数组。

    58610

    有趣的Scala模式匹配

    Scala提供了一种类比switch/case更为强大的选择匹配模式,写作 选择语句 match {可选分支} 它被称为模式匹配,模式匹配包含了一系列以case关键字开头的分支,每一个分支包含一个模式或者是多个表达式...(1) 1 scala> matchTest(2) 2 scala> matchTest(4) 3 match表达式会逐个尝试case里的模式直到匹配为止,如果没有匹配上就会抛出异常MatchError...上例所展示的就是常量模式的常量1,2去匹配,还使用了_通配符匹配任何对象(建议放在最后面,因为Scala的模式匹配是按顺序的)。...(b) res1: Test2 = Test2(cd) 我们创造了两个样例类Test1和Test2,Test1接受Test2作为构造参数,实例化两个样例类后发现,在构造方法匹配中,Scala采用了深度匹配...由构造方法匹配自然而然就可以引申为序列模式匹配和元组匹配。

    1.1K40

    Scala专题系列(三):Scala数组

    一 : 定长数组 如果我们需要声明一个长度不变的数组,可以用scala中的Array,比如: val nums = new Array[Int](10) // 声明一个容量为10个整数的数组,所有元素的初始化为...// 声明一个长度为Array[String] -- 类型是推断出来的 , 如果在声明中已经提供了初始值就不需要new 在JVM中,Scala的Array是以Java数组方式实现,上述中的数组在JVM...:数组缓冲 对于变长数组,Java中有ArrayList Scala中的等效数据结构为ArrayBuffer import scala.collection.mutable.ArrayBuffer val...在下标2前插入任意多的元素 将数组缓冲转换为Array b.toArray 反之 将a.toBuffer 可以将一个数组转换为数组缓冲 b.toBuffer 三:遍历数组和数组缓冲 在scala 中处理数组的方式如下...在Scala中对数组进行转换时很简单的,这些转换不会修改原始数组,而是产生一个全新的数组 val a = Array(2,3,5,7,11) val Result = for(elem <- a )

    71420

    Scala数组操作

    壹 定长数组: 长度不变的数组Array,如:声明一个长度为10的整形数组,val arr = Array[Int](10);声明并初始化一个字符串数组: val arrStr = Array(“wo...访问数组方式:访问arrStr第一个元素,arrStr(1)即可 贰 变长数组(即数组缓冲): java中有ArrayList和scala中的ArrayBuffer等效;但是ArrayBuffer更加强大...Array val arrbuff2 = arr.toBuffer //将Array转换为数组缓冲 叁 遍历数组和数组缓冲: 在java中数组和数组列表/向量上语法有些不同。...陆 scala数组和java互操作: 由于scala数组是用java数组实现的,所以可以在java和scala之间来回传递,引入scala.collectin.JavaConversion ,可以在代码中使用...scala缓冲,在调用java方法时,这些对象会被自动包装成java列表。

    1K10

    Scala 数组(十一)

    ---- 声明数组 以下是 Scala 数组声明的语法格式: var z:Array[String] = new Array[String](3) 或 var z = new Array[String]...$ scala Test 1.9 2.9 3.4 3.5 总和为 11.7 最大值为 3.5 ---- 多维数组 多维数组一个数组中的值可以是另一个数组,另一个数组的值也可以是一个数组。...$ scala Test 0 1 2 0 1 2 0 1 2 ---- 合并数组 以下实例中,我们使用 concat() 方法来合并两个数组,concat() 方法中接受多个数组参数: import...$ scala Test 1.9 2.9 3.4 3.5 8.9 7.9 0.4 1.5 ---- 创建区间数组 以下实例中,我们使用了 range() 方法来生成一个区间范围内的数组。...$ scala Test 10 12 14 16 18 10 11 12 13 14 15 16 17 18 19 ---- Scala 数组方法 下表中为 Scala 语言中处理数组的重要方法,使用它前我们需要使用

    73030

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

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

    78410

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

    一、前述 Scala Trait(特征) 相当于 Java 的接口,实际上它比接口还功能强大。 模式匹配机制相当于java中的switch-case。...一般情况下Scala的类可以继承多个Trait,从结果来看就是实现了多重继承。Trait(特征) 定义的方式与类类似,但它使用的关键字是 trait。...match       1、概念理解:          Scala 提供了强大的模式匹配机制,应用也非常广泛。        ...2、代码及注意点 模式匹配不仅可以匹配值还可以匹配类型 从上到下顺序匹配,如果匹配到则不再往下匹配 都匹配不上时,会匹配到case _ ,相当于default match 的最外面的”{ }”可以去掉看成一个语句...,还可以匹配类型 * 2.模式匹配中,如果匹配到对应的类型或值,就不再继续往下匹配 * 3.模式匹配中,都匹配不上时,会匹配到 case _ ,相当于default */ def

    73220
    领券