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

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

常量 类型 数组 列表 元组 对象及样例类 四、声明变量模式匹配 五、for表达式模式匹配 六、偏函数模式匹配 ---- 本次主要分享Scala关于模式匹配内容,Scala模式匹配类似于Java...switch语法,但是Scala在基于Java思想上补充了特有的功能。...、元素数量匹配或者精确某个数组元素匹配 // 匹配数组 for (arr <- List( Array(0), Array(1, 0), Array(0...case Array(x, y) => "Array:" + x + ", " + y case Array(0, _*) => "0开头数组" case Array...,必须用_1 _2 …,可以用元组赋值将元素赋给变量 指定特定元素,可以实现类似于循环守卫功能 object TestMatchFor { def main(args: Array[String

1.5K30

Scala语言快速了解一下?

类型系统具体支持以下特性:泛型类协变和逆变标注类型参数上下限约束把类别和抽象类型作为对象成员复合类型引用自己时显式指定类型视图多态方法扩展性Scala设计秉承一项事实,即在实践,某个领域特定应用程序开发往往需要特定于该领域语言扩展..._,这里也能解释,为什么scala开头包,在使用时都是省去scala.。如果想要引入包几个成员,可以使用selector(选取器):import java.awt....Scala程序从main()方法开始处理,这是每一个Scala程序强制程序入口部分,def main(args: Array\[String]) {}Scala 程序里,语句末尾分号通常是可选。...数组声明语法格式:var z:Array[String] = new Array[String](3)var x = new Array[String](3)多维数组一个数组可以是另一个数组,...Scala 提取器是一个带有unapply方法对象。unapply方法算是apply方法反向操作:unapply接受一个对象,然后从对象中提取值,提取通常是用来构造该对象

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

学好Spark必须要掌握Scala技术点

= j)) { println(i + j) } //for推导式:如果for循环体yield开头,则该循环会构建一个集合 // 每次迭代生成集合一个元素...无特定顺序) val lst11 = lst0.fold(100)((x, y) => x + y) //折叠:有初始(有特定顺序) val lst12 = lst0.foldLeft...类、对象、继承和trait 3.1 类 3.1.1 类定义 Scala,可以在类定义类、在函数定义函数、可以在类定义object;可以在函数定义类,类成员缺省访问级别是:public...apply方法有点类似于java构造函数,接受构造参数变成一个对象。 unapply方法就刚好相反,它是接收一个对象,从对象中提取出相应,主要用于模式匹配(后文阐述)。...模式匹配和样例类 4.1 模式匹配 Scala有一个十分强大模式匹配机制,可以应用到很多场合:替代Javaswitch语句、类型检查等。

1.5K50

3小时Java入门

名称大写字母开头。 方法名称小写字母开头。 变量名称小写字母开头。 ? 2,注释 单行注释用//开头。 多行注释用/*开头*/结尾。...特殊多行注释,/**开头*/结束,如果有多行,每行通常以星号开头。 这种特殊多行注释需要写在类和方法定义处,可以用于自动创建文档。 ? ?...七,字符串String Java 字符串和Scala字符串来源于同一个包,java.lang.String,两者具有完全相同方法。 以下为字符串一些常用操作。 ? ?...八,数组Array Java 数组和 C++数组很像,其长度是不可变,但是数组元素内容是可以改变。 数组是引用类型,一般是用花括号{}作为数组范围标识。...二十六,注解 Java注解是放在Java源码类、方法、属性、参数前一种特殊"注释",@开头。 注解可以看成用作标注一种"元数据"。

2.7K30

Scala最基础入门教程

3、标识符命名规范 字母或者下划线开头,后接字母、数字、下划线 操作符开头,且只包含操作符(+ - * / # !...集合每个元素元素映射到某个函数并返回新集合。 **分组(groupBy):**按照指定规则对集合元素进行分组。...("a","b","c") // 弹出元素(a) println(que.dequeue()) 七、模式匹配 1、基本语法 Scala模式匹配类似于Javaswitch语法 模式匹配语法,采用...若只提取对象一个属性,则提取器为unapply(obj:Obj):Option[T] 若提取对象多个属性,则提取器为unapply(obj:Obj):Option[(T1,T2,T3…)] 若提取对象可变个属性...Person05(var name: String, age: Int) 样例类仍然是类,和普通类相比,只是其自动生成了伴生对象,并且伴生对象自动提供了一些常用方法,apply、unapply、

56470

3小时Scala入门

类和对象名称大写字母开头。 方法名称小写字母开头。 $可以被用作字母,但要慎重使用。...因为有些特殊符号 + 内部表示为 $plus 当存在标识符和关键字冲突时,可以加上``来避免冲突 ? 2,注释 多行注释用/*开头*/结尾。 单行注释用//开头。 ?...六,字符串String Scala字符串是一种有序且不可变基本数据类型,直接使用Java定义好java.lang.String。 1,创建字符串 ? 2,字符串常用操作 ? ? ?...函数类型是函数参数和返回类型映射关系, Int => Unit , (Array[Int],String) => Int 。...函数是函数参数和返回取值映射关系, x => x+1 x,y => x+y 。 使用这种方式声明函数叫做匿名函数。 此外,当函数表达式引用了非参数变量时,这种函数叫做闭包。

1.6K30

3小时Scala入门

类和对象名称大写字母开头。方法名称小写字母开头。可以被用作字母,但要慎重使用。因为有些特殊符号 + 内部表示为 plus当存在标识符和关键字冲突时,可以加上``来避免冲突 ?...2,注释 多行注释用/*开头*/结尾。 单行注释用//开头。 ?...六,字符串String Scala字符串是一种有序且不可变基本数据类型,直接使用Java定义好java.lang.String。 1,创建字符串 ? 2,字符串常用操作 ? ? ?...函数类型是函数参数和返回类型映射关系, Int => Unit , (Array[Int],String) => Int 。...函数是函数参数和返回取值映射关系, x => x+1 x,y => x+y 。 使用这种方式声明函数叫做匿名函数。 此外,当函数表达式引用了非参数变量时,这种函数叫做闭包。

3.5K20

3小时Scala入门

类和对象名称大写字母开头。 方法名称小写字母开头。 $可以被用作字母,但要慎重使用。...因为有些特殊符号 + 内部表示为 $plus 当存在标识符和关键字冲突时,可以加上``来避免冲突 ? 2,注释 多行注释用/*开头*/结尾。 单行注释用//开头。 ?...六,字符串String Scala字符串是一种有序且不可变基本数据类型,直接使用Java定义好java.lang.String。 1,创建字符串 ? 2,字符串常用操作 ? ? ?...函数类型是函数参数和返回类型映射关系, Int => Unit , (Array[Int],String) => Int 。...函数是函数参数和返回取值映射关系, x => x+1 x,y => x+y 。 使用这种方式声明函数叫做匿名函数。 此外,当函数表达式引用了非参数变量时,这种函数叫做闭包。

1.6K30

(数据科学学习手札45)Scala基础知识

Double 双精度浮点数,0.11 Boolean true或false   String也属于Scala基本数据类型,归属于java.lang包,其余数据类型都是Scala自带基础类型包成员...Map映射中键集合   我们使用.keySet来提取Map映射中键名集合: scala> DemoMap.keySet res3: scala.collection.Set[String] = Set...(R, Julia, Java, Python)   8.提取Map映射中集合 scala> DemoMap.values res4: Iterable[Int] = HashMap(3, 100,...,Scala列表被设计来存放各种类型元素,且Scala列表类型有三种模式,一种是当列表内部元素类型统一时,List[Int],一种是当列表同时包含几种不同类型元素时,为List[Any],...  8.得到集合中所有元素个数 scala> set1.product res0: Int = 5040 scala> set1.size res1: Int = 7   9.得到一个集合最大

2.6K20

scala(二) 变量与数据类型

,有以下四种规则: (1)字母或者下划线开头,后接字母、数字、下划线 (2)操作符开头,且只包含操作符(+ - * / # !...一、变量: 在程序运行过程可能发生改变量叫做变量。:时间,年龄。 二、常量 在程序运行过程不会发生变化量叫做常量。:数值 3,字符'A'。...声明变量实例如下: var myVar : String = "Foo" var myVar : String = "Too" 声明常量实例如下:可以理解java final 修饰变量——常量...在scala支持 插写入 方式,该方式类似于 java format。...对JavaString增强 Unit:对应 Javavoid,用于方法返回位置,表示方法没有返回

1.3K10

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

p第一个元素,但不赋给任何变量     case List(_,y,_*) => y     case _ => "Other" }   } } 上述实例实例,第一个模式匹配Array第一个和第二个元素...” case _ => 0 } } 在上面代码,模式匹配到被当作String绑定到了s,而在第二个模式被当作Int绑定到x; 当在匹配类型时候,必须给出一个变量名,否则将会拿对象本身来匹配...匹配是发生在运行时,Java虚拟机泛型类型信息时被擦掉,因此不能用类型来匹配特定Map 类型 比如: case m:Map[String,Int] => … // 是不可行 可以匹配一个通用映射...序列模式:可以像匹配样本类那样匹配List或者Array这样序列类型。...元组模式:匹配元祖 类型模式:匹配变量类型 Option 类型 Option类型在Scala程序中经常使用,可以将其与Java可用null进行比较,表示null

83220

Scala——多范式, 可伸缩, 类似Java编程语言

Scala一种简洁、高级语言将面向对象和函数式编程结合在一起.Scala静态类型有助于避免复杂应用程序bug,它JVM和JavaScript运行时允许构建高性能系统,可以轻松地访问庞大库生态系统...list相关方法总结 1 def +(elem: A): List[A] 前置一个元素列表 2 def ::(x: A): List[A] 在这个列表开头添加元素。...min: A 查找最小元素 32 def mkString: String 显示列表字符串所有元素 33 def mkString(sep: String): String 显示列表字符串中使用分隔串所有元素...map方法用于切分数组元素,将每个切分后元素放入到一个数组(一对一)-------") // list:集合 Array:数组 通过map方法获得素组需要我们再次遍历才能得到元素.../** * * match scala模式匹配 * 注意: * 1.Scala模式匹配关键字是Match * 2.Match模式匹配不仅可以匹配,还可以匹配类型

2.9K20

Scala语法笔记

-1 高级for 循环  可以使用变量<- 表达式 形式提供多个生成器,用分号将其隔开 如果for循环循环体yield开始,则循环会构造出一个结合,每次迭代生成集合: 每个生成器都自带一个守卫...,if开头Boolean表达式 可以任意多定义,引入可以在循环中使用变量 定义函数:Scala一般不需要声明返回类型,会自己推断,但使用递归时候 必须指定返回类型: 默认参数和带名参数(什么鬼...,Java思想被颠覆) 过程,Scala对于不返回函数有特殊表示语法,如果函数体包含在花括号但没有前面的=号,那么返回类型就是Unit 或def box(s : String) : Unit...替换,-10 > 0,然后用-5,-5 > 0,这样直到List最后一个。...想要标注一个重复参数,在参数类型之后放一个星号 函数内部,重复参数类型是声明参数类型数组。因此,echo函数里被声明为类型“String*”args类型实际上是Array[String]。

1.2K20
领券