导读 继续Scala从零起步系列,在前文分享变量和标识符的基础上,本文介绍Scala中的运算符。...=0 && 3/i>1) "a" else "b" // 避免除数为0引发异常 val res6: String = b 04 位运算符 位运算符是整数特有的运算操作符,Scala中主要包括6类7个运算符...的连接操作。...在Scala中,但凡以:结尾的运算符,那么都是右操作数的运算符,即应:右侧的操作数为基准进行相应计算。...主要用在定义函数过程中,衔接参数列表与函数体之间的符号,表示映射关系。理论上不属于运算符,但仍在此处加以提及。 最后,附一张Scala运算符优先级: ?
六,字符串String Scala的字符串是一种有序且不可变的基本数据类型,直接使用的Java中定义好的java.lang.String。 1,创建字符串 ? 2,字符串常用操作 ? ? ?...八,列表List 列表和数组相似,都是有序的结构,但列表中的元素是不可变的。 并且列表的存储结构为递推的链表结构,和数组不同。 1,创建列表 ? 2,列表常用操作 ? ? ?...九,集合 集合是一种不可变的类型,并且是无顺序的,适合查找某个元素是否在集合中。 ? ? 十,映射Map 映射和Python中的字典很像,但是Scala中的Map是一种不可变类型。...十六,异常捕获 异常捕获的语句是 try...catch...finally... 此外还可以用throw抛出异常。 ? 十七,函数定义 Scala中的函数可以通过关键字def定义或者使用匿名函数。...二十六,Scala语言的设计哲学 1,一切皆对象 从整数,字符串,函数,类到各种数据结构,Scala中一切皆为对象,Any是它们的超类。
16、异常:异常与Java的异常类似,但是不强制函数向上传递异常。...alice”->10,”bob”->3),或者使用HashMap 3、映射操作:获取映射中的值scores(bob),改操作如果不存在建会报错,一般使用socers.getOrElse(“bob”,0)...字符串中存在一个partition的来处理字符串生成元组。可以使用zip来合成元组。...如用于构造列表的::操作符就是右结合的: val a=List(1,2,3,4) val b=-1::0::a//实际上是按照这样的顺序-1::(2::a)。...比如map的get方法在java中可能返回为null而导致出现NullPointerException异常,而Scala中返回的是一个Option[T]类型当值不存在时为None,存在时返回Some(T
Scala语言是完全面向对象的语言,所以并没有静态的操作(即在Scala中没有静态的概念)。...如果满足上两个条件,那么就称这个object为class的伴生对象,称class为object的伴生类。 伴生类与伴生对象可以互相访问对方的私有成员。...中的Map和Java类似,**也是一个散列表,它存储的内容也是键值对(key-value)**映射。...**转化/映射(map):**将集合中的每一个元素映射到某一个函数。 扁平化 **扁平化+映射:**注:flatMap相当于先进行map操作,在进行flatten操作。...10 match { case 10 => "10" case _ => "other" } 八、异常 Scala没有“checked(编译期)”异常,即Scala没有编译异常这个概念,异常都是在运行的时候捕获处理
操作类型是Elem => U,其中Elem是容器(collection)中元素的类型,U是一个任意的返回值类型。对f的调用仅仅是容器遍历的副作用,实际上所有函数f的计算结果都被foreach抛弃了。...它们主要用于特定类型的容器(数值或比较)。 字符串(String)操作有mkString,addString和stringPrefix,可以将一个容器通过可选的方式转换为字符串。...如果该主键不存在,则会抛出异常。 添加及更新类操作:+、++、updated,这些映射操作允许你添加一个新的绑定或更改现有的绑定。 删除类操作:-、–,从一个映射(Map)中移除一个绑定。...filterKeys、mapValues等变换用于对现有映射中的绑定进行过滤和变换,进而生成新的映射。...具体不可变集实体类 List 列表List是一种有限的不可变序列式。提供了常数时间的访问列表头元素和列表尾的操作,并且提供了常数时间的构造新链表的操作,该操作将一个新的元素插入到列表的头部。
List列表:以线性方式存储,集合中可以存放重复对象; Set集合:集合中的对象不按特定的方式排序,并且没有重复对象; Map映射:是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象...值得注意的是,隐式参数是根据类型匹配的,因此作用域中不能同时出现两个相同类型的隐式变量,否则编译时会抛出隐式变量模糊的异常。 35 如何处理异常?...需要注意的是与try……catch成对出现的还有finally语句-用于执行不管是正常处理还是有异常发生时都需要执行的步骤。...} case n if n { n to 0 foreach println } } } 0 2 编写一段程序, 从文件中读取单词, 用一个可变映射来清点每一个单次出现的频率...,以及一个字符串到整型值的映射,返回整型集合, 其值为能和集合中某个字符串相对应的映射的值。
、Set、Map…) 重点掌握函数式编程思想及其使用 1. scala简介 scala是运行在JVM上的多范式编程语言,同时支持面向对象编程和面向函数式编程 ?...早期,scala刚出现的时候,并没有怎么引起重视,随着Kafka和Spark这样基于scala的大数据框架的兴起,scala逐步进入大数据开发者的眼帘。scala的主要优势是它的表达性。...映射 Map可以称之为映射。它是由键值对组成的集合。在scala中,Map也分为不可变Map和可变Map。...17.4 映射 | map 集合的映射操作是将来在编写Spark/Flink用得最多的操作,是我们必须要掌握的。...> a.map(_ + 1) 17.5 扁平化映射 | flatMap 扁平化映射也是将来用得非常多的操作,也是必须要掌握的。
= 1.0 scala> val z:String="scala" z: String = scala 而事实上,即使你在Scala中声明变量时不进行类型的指定,Scala内部也会根据你输入数据的具体类型进行判断...="spark" z: String = spark 2.3 算数操作符、关系运算符与逻辑运算符 Scala像很多其他成熟的编程语言一样,具有丰富的内置运算符,且在Scala中操作符也被视为函数,即可以通过对象...,Scala中的列表被设计来存放各种类型的元素,且Scala中的列表类型有三种模式,一种是当列表内部元素类型统一时,如List[Int],一种是当列表中同时包含几种不同类型元素时,为List[Any],...中,我们可以通过:::运算符或List.concat()来为已有的列表串联上新的列表: scala> var list1 = List(1,2,3) list1: List[Int] = List(1,... Scala中的异常控制与Java非常相似,处理抛出异常之外,还有捕获异常,这里我们只介绍捕获异常: Scala中捕获异常的格式如下: try{ ... ... }
这意味着Scala程序可以与Java程序互操作,并且可以利用JVM的优化和性能。 在语法上,Scala和Java有一些区别。...最后,我们打印出 sum 的 x 和 y 坐标,验证加法操作的结果。 我们可以像使用内置运算符一样使用自定义运算符。它们可以用于相应类型的实例上,并按照定义的逻辑执行操作。...(1) // 过滤列表中的元素 val filteredList = list.filter(_ > 2) // 映射列表中的元素 val mappedList = list.map(_ * 2)...Scala的模式匹配是我觉得非常实用和灵活的一个功能,比Java的switch语句更加强大和灵活。Scala的模式匹配可以匹配不同类型的值,包括数字、字符串、列表、元组等。...如果我们尝试用 divide 函数去除以零,它会抛出一个异常。其中isDefinedAt 是一个方法,它用于检查偏应用函数是否在给定的输入值上定义。
Scala 同样重用了许多标准 Java 库类型。例如,Scala 里的字符串文本是 Java.lang.String,而抛出的异常必须是 java.lang.Throwable 的子类。...+(",world") res18: String = hello,world scala> 也就是说 字符串的+运算实际上就是调用了+方法,运算符被重载了 to运算可以生成一个区间集合 2.4 分支语句...列表类似于数组,它们所有元素的类型都相同,但是它们也有所不同:列表是不可变的,值一旦被定义了就不能改变,其次列表 具有递归的结构(也就是链接表结构)而数组不是。。...键在映射中是唯一的,但值不一定是唯一的。映射也称为哈希表。映射有两种,不可变的和可变的。可变对象和不可变对象之间的区别在于,当对象不可变时,对象本身无法更改。...) (3,c) scala> 总结: scala提供了许多用于添加和移除元素的操作符,总结如下。
作为一种在Java虚拟机(JVM)上运行的静态类型编程语言,Scala结合了面向对象和函数式编程的特性,使它既有强大的表达力又具备优秀的型态控制。...这意味着Scala程序可以与Java程序互操作,并且可以利用JVM的优化和性能。在语法上,Scala和Java有一些区别。...最后,我们打印出 sum 的 x 和 y 坐标,验证加法操作的结果。我们可以像使用内置运算符一样使用自定义运算符。它们可以用于相应类型的实例上,并按照定义的逻辑执行操作。...Scala的模式匹配是我觉得非常实用和灵活的一个功能,比Java的switch语句更加强大和灵活。Scala的模式匹配可以匹配不同类型的值,包括数字、字符串、列表、元组等。...如果我们尝试用 divide 函数去除以零,它会抛出一个异常。其中isDefinedAt 是一个方法,它用于检查偏应用函数是否在给定的输入值上定义。
它其实就是一组目录的集合,它设置的搜索路径与操作系统相关。 例如,在Windows系统上,用;分隔,可能长这样。...容器类中常用的数据结构包括:列表(List),映射(Map),集合(Set),队列(Quene),堆栈(Stack)。...七,字符串String Java 中的字符串和Scala中的字符串来源于同一个包,java.lang.String,两者具有完全相同的方法。 以下为字符串一些常用操作。 ? ?...2,List常用操作 ? ? ? 十,映射Map Map是一种无序数据结构的接口,存储键值对(key,value)。 Map的常用实现是HashMap, LinkedHashMap, TreeMap。...Scala在Java基础上做了重大的改进,使其兼备静态语言和脚本语言的特色。 下面列举一些比较显著的差异。
list,一个字符串集合set和一个字符串到整数的映射map。...集合和数组操作 除了遍历,Scala还提供了许多其他的集合和数组操作。 映射操作 在Scala中,我们可以使用map方法对集合和数组中的每个元素进行映射操作。...将数组array中的每个元素都平方,并将结果存储在squaredArray中。 过滤操作 在Scala中,我们可以使用filter方法对集合和数组中的元素进行过滤操作。...聚合操作 在Scala中,我们可以使用reduce方法对集合和数组中的元素进行聚合操作。...然后,我们遍历了列表和数组,并对它们进行了一些常见的操作,如映射、过滤和聚合。最后,我们打印输出了操作后的结果。
简单计算函数 高级计算函数 WordCount案例 二、队列 三、并行集合 ---- 在上一篇集合的分享中,讲解了Scala中集合的基本概述以及常用集合的基本操作,本次住要分享Scala中集合更高级的操作...Map操作: 过滤 filter(过滤条件):遍历一个集合并从中获取满足指定条件的元素组成一个新的集合 映射map(自定义映射函数):将集合中的每一个元素映射到某一个函数 扁平化flatten 将集合中集合元素拆开...Map操作,把每一个元素做一个转化得到新的集合,相当于集合的映射关系 // 每个元素✖️2 list.map(elem => elem * 2) // 扁平化 val...// 将一组字符串进行分词,并保存成单词的列表 val strings = List("hello world", "hello scala", "hello java") /...", "hello scala spark", "hello scala spark flink" ) // 对字符串进行拆分 val wordList
相当于 Java 的接口,但实际上它比接口的功能强大。...val x = Set(1,3,5,7) // 定义 Map,把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象。...") //打印 Hello,Scala 值得注意的是,隐式参数是根据类型匹配的,因此作用域中不能同时出现两个相同类型的隐式变量,否则编译时会抛出隐式变量模糊的异常。...关于异常处理的注意事项,在上一讲《大数据分析工程师入门--1.Java基础》里已经讲过了,这里就不再赘述了。我们重点来讲下scala和java在异常这个特性的设计上的不同。 1....当接收参数为Object类型时,scala默认不会转换成java的数值类型,这样当判断对象的具体数值类型时,会出现不认识scala对象类型的异常。
二、字符串增强 挑逗指数: 四星 常用操作 Scala 针对字符作进行了增强,提供了更多的使用操作。 ?...其实你完全可以把 String 当做 Seq[Char] 使用,利用 Scala 强大的集合操作,你可以随心所欲地操作字符串。...原生字符串 在 Scala 中,我们可以直接书写原生字符串而不用进行转义,将字符串内容放入一对三引号内即可。 ? 字符串插值 通过 s 表达式,我们可以很方便地在字符串内插值。 ?...通过 Scala 提供的集合操作,我们基本上可以实现 SQL 的全部功能,这也是为什么 Scala 能够在大数据领域独领风骚的重要原因之一。...而在 Scala 中,我们可以通过 Future 捕获任意线程中发生的异常。
领取专属 10元无门槛券
手把手带您无忧上云