控制结构
IF结构
- if(condition) expr_1 else expr_2 // 相当于Java中的 "? :"
FOR循环
- for(elem <- TO-generator) {语句块}
- for(elem <- UNTIL-generator) {语句块}
- for(elem <- Container) {语句块}
- for(elem <- Generator IF-guard) {语句块}
- for(elem <- Generator ...) YIELD {语句块}
- for(... Generator_1 ...; ... Generator_2 ...) ... 语句块
函数定义
DEF式定义
- def 函数名 (形参列表): 返回值类型 = {函数体}
- def 函数名 (形参列表): 返回值类型 = 函数表达式
- def 函数名 (): 返回值类型 = {函数体}
- def 函数名: 返回值类型 = {函数体}
- def 函数名 (形参列表) = {函数体}
- def 函数名 (形参列表1) (形参列表2): 返回值类型 = {函数体}
LAMBDA表达式
- (形参实例) => {语句块}
- () => {语句块}
- _型表达式
匿名函数
- (形参列表) => {语句块}
- () => {语句块}
- (_: T)型表达式
新式定义
val 函数名: 函数类型 = {LAMBDA表达式}
val 函数名 = 匿名函数
高阶函数
简而言之,高阶函数就是函数的嵌套,或者是以函数为形参或者返回值的函数。在调用高阶函数时,经常以LAMBDA表达式或匿名函数形式来实例化形参。
偏应用函数
偏应用函数是指针对特定函数,为部分形参指定默认值后所得到的仅有部分形参的重载形式。偏应用函数在声明定义时,往往会使用下划线 (_)。
Curry化函数
Curry化函数是指包含多个形参列表,但每个形参列表仅包含一个元素形式的函数。将普通函数转换为Curry函数,可以通过 .curried 方法来实现。
其他
函数调用时,可以使用 “形参名 = 参数值” 这种形式。