chapter3 《Programming in scala》笔记

1、Array

变量初始化:

方括号中为类型,后面跟圆括号为参数

这里虽然 greetStrings 是val,但是其中的element是可以被另外赋值的,val只是说这个变量只能是Array[String](3)的对象了。所以array本身仍是mutable。

 

另外一种初始化的方式

其实是使用了一个叫 apply的 factory method,apply方法在 Array的伴生对象 companion object中定义。

这种写法等同于

2、List

scala中的List是immutable的

初始化:

more:

这里 最后 ::Nil 是必须的,否则编译器不知道它是list

一般的,在 a operator b时,可以看做是 a.operator(b),而有 :的时候,以 右边为主,a :: b 应看做 b.:: (a)

3、Tuple

tuple和list一样是immutable,但是tuple里面的element类型不必相同。获取里面的元素只要只用 ._1 这种下标就好。而不能使用想array或list的 (0)形式,主要是因为tuple每个元素类型都可能不一样。

4、Set

extend不同的trait,分为 immutable 和 mutable

下面的代码,对jetSet进行了重新赋值, jetSet + "Lear" 其实新产生了一个 set,这个新的set赋给了jetSet

mutable set: 没有产生新的set。 += 则是 一个method,可以写成  .+= 。immutable set 则不具备这个method。

5、Map

同样的,map也分为 immutable 和 mutable。默认不用import的是 immutable

初始化

形如  1 -> "Go to island."  其实是 ->方法在1上的使用,即 (1).->("Gotoisland.") 

6、提倡使用val和immutable变量

减少vars,mutable和 function side effect

The reason Scala en- courages a functional style, in fact, is that the functional style can help you write more understandable, less error-prone code. 

posted @ 2017-08-20 23:05  Akane  阅读(149)  评论(0编辑  收藏  举报