Scala语言(二)

控制结构

if语句

Scala语言(二)

Scala语言(二)

Scala语言(二)

 

while循环

Scala语言(二)

 

for循环

 Scala语言(二)

Scala语言(二)

Scala语言(二)

Scala语言(二)

Scala语言(二)Scala语言(二)

 

异常处理

Scala语言(二)

受检异常是在写代码的时候,编程人员必须明确,自己就能清楚地知道,代码在执行过程当中可能会抛出哪些错误。并且对每一个可能抛出的错误都要给出处理方法

Scala语言(二)

不受检异常不是在编译阶段抛出来,是在运行阶段抛的

 

Scala语言(二)

Scala把所有异常都当做不受检异常。 

Scala语言(二)

 

Scala对循环控制没有break和continue

Scala语言(二)

Scala语言(二)

Scala语言(二)Scala语言(二)Scala语言(二)

 

数据结构

Scala语言(二)

数组

Scala语言(二)

引用数组元素是用圆括号()

Scala语言(二)

Scala语言(二)

Scala语言(二)Scala语言(二)

 

元组

       数组是都是同一类型的值的集合。但如果我们需要一个集合中元素的类型是不相同的,这个时候就必须用到一个叫元组的数据结构

Scala语言(二)

在Spark编程中会经常用到元组

Scala语言(二)

 

容器

Scala语言(二)

Scala语言(二)

scala.colletion封装了一些超类或特质,定义了一些可变容器和不可变的一些通用操作

Scala语言(二)这些还属于特质,具体的容器类会从特质往下继承

Scala语言(二)

 Scala当中没有接口的概念,由特质概念和接口相似

 

最顶层有一个叫Traversable的特质

Scala语言(二)

List类(举个例子)是层层继承下来的

Traversable特质中定义的抽象方法foreach,用来遍历容器内部的元素,那么任何一个容器类,是从Traversable继承下来的,那你在实现容器类的时候,必须把foreach方法实现了。所以seq、set、map的区别就在于元素的索引方式不同(就是对于foreach的实现方式不同)

Scala语言(二)

Scala语言(二)

Scala语言(二)

Scala语言(二)            Scala语言(二)

 

List

列表属于具体的容器类了,而不是特质了

特点:

Scala语言(二)

Scala语言(二)

声明的时候就要初始化

Scala语言(二)

 

Scala语言(二)

 

构造列表的常用方法

Scala语言(二)

Scala语言(二)没有覆盖原来旧的strList,生成新的副本

得到

Scala语言(二)

快速得到一个列表

Scala语言(二)Scala语言(二)

 

向量

Scala语言(二)

:+与+:

 

Range

        一种特殊的带索引的不可变数字等差序列

Scala语言(二)

Scala语言(二)

Scala语言(二)

 

Range可以支持不同类型的数值序列

Scala语言(二)

 

Scala语言(二)until是不包含右重点

Scala语言(二)

Scala语言(二)

 

集合

Scala语言(二)

Scala语言(二)

var mySet = Set("Hadoop","Spark")是生成不可变集的对象

mySet是可变的变量(开始指向了不可变集,后来又指向了一个新的增加了Scala的不可变集)

Scala语言(二)

生成可变集

Scala语言(二)

不可变类型的变量指向了一个可变集。这次是指针没有变,但是指针指向的数据集变了

 

映射(Map)

Scala语言(二)

Scala语言(二)Scala语言(二)Scala语言(二)Scala语言(二)Scala语言(二)