下载Scala: http://www.scala-lang.org/download/
数值类型:Byte,Short,Int,Long,Float,Double
字符类型和字符串类型:Char,String
Unit类型
Nothing类型
自定义函数:
def 函数名称(参数列表:参数类型):返回值类型={
//函数体
}
返回值类型可忽略
Trait像拥有部分实现的接口,它提供一个介于单一继承和多重继承的中间地带,可以在其它类中混入它们,这样就可以用一组特性对类进行增强
包可以包含类、对象和特质,但不能包含函数或者变量的定义。很不幸,这是Java虚拟机的局限
把工具函数或者常量添加到包而不是某个Utils对象,这是更加合理的做法
将函数作为变量的值(值函数) 在Scala中,可以将一个函数作为另一个函数的参数
Scala的闭包:就是函数的嵌套,即:在一个函数定义中,包含另外一个函数的定义
柯里化:Currying
柯里化函数(Curried Function)是把具有多个参数的函数转化为一条函数链,每个节点上是单一参数
def add(x: Int, y: Int) = x + y
def add(x: Int)(y: Int) = x + y //Scala柯里化的语法
map:在列表中的每个元素上计算一个函数,并且返回一个包含相同数目元素的列表
foreach: foreach和map相似,只不过它没有返回值,foreach只要是为了对参数进行作用
filter: 移除任何使得传入的函数返回false的元素。返回Boolean类型的函数一般都称为断言函数
zip: zip把两个列表的元素合成一个由元素对组成的列表里
partition: partition根据断言函数的返回值对列表进行拆分
find: find返回集合里第一个匹配断言函数的元素
flattern: flatten可以把嵌套的结构展开
flatMap: flatMap是一个常用的combinator,它结合了map和flatten的功能
不可变列表(List) 可变列表(LinkedList)
常用的序列:Vator、Range
Vector是ArrayBuffer的不可变版本,是一个带下标的序列
Range表示一个整数序列
使用implicit申明的函数参数叫做隐式参数