因为使用习惯,在以后的使用中函数大多数指的是`def`定义的,而`val`定义的通常称为常量。
<br/>
(1) 函数的形参列表可以是多个, 如果函数没有形参,调用时可以不带`()`;
(2) 形参列表和返回值列表的数据类型可以是值类型和引用类型;
(3) Scala 中的函数可以根据函数体最后一行代码自行推断函数返回值类型。那么在这种情况下,`return` 关键字可以省略;
```scala
def getSum(n1: Int, n2: Int): Int = {
n1 + n2
}
```
(4) 因为 Scala 可以自行推断,所以在省略 `return` 关键字的场合,返回值类型也可以省略;
```scala
def getSum(n1: Int, n2: Int) = {
n1 + n2
}
```
(5) 如果函数明确使用 `return` 关键字,那么函数返回就不能使用自行推断了,这时要明确写成 `: 返回类型 =`,当然如果你什么都不写,也会自动`return ()`
(6) 如果函数明确声明无返回值(声明 Unit),那么函数体中即使使用 `return` 关键字也不会有返回值;
(7) 递归函数未执行之前是无法推断出来结果类型,在使用时必须指定明确的返回值类型;
(8) 方法可以自动,或手动转变为函数;
```scala
object HelloWorld {
def main(args: Array[String]): Unit = {
// 这是一个方法
def m1(x:Int) = {println(x)}
// 将其转换为函数
val m2 = m1 _
m2(20) // 20
}
}
```
- Scala是什么?
- Scala特性
- 开发环境搭建
- 环境搭建
- windows下的环境搭建
- IntelliJ IDEA环境搭建
- Scala关键字
- Hello, World
- 数据类型
- 数据类型
- 数据类型层次结构
- 字面量
- Null类型
- Nothing类型
- Unit类型
- 变量与常量
- type定义类型别名
- 字符串插值器
- 条件控制
- 循环控制
- 数组
- 元组
- 集合
- 集合分类
- List常用操作
- Set常用操作
- Map常用操作
- 函数
- 函数声明与调用
- 函数与方法的区别
- 函数注意事项
- 匿名函数
- 可变参数
- 高阶函数
- 中置表达式
- 函数嵌套
- 函数科里化
- 隐式参数
- 隐式函数
- 闭包
- 类和对象
- Java与Scala的比较
- 有关类与对象概念
- 类
- 类的定义和调用
- 类的继承
- 抽象类
- 单例对象
- 伴生对象和伴生类
- 特质
- 定义特质
- 混入特质
- 抽象类与特质的选择
- 自身类型
- 依赖注入
- this别名
- 样例类
- 枚举类
- 泛型类
- 包与包对象
- 模式匹配
- 基本语法
- 匹配模式
- 偏函数
- 注解
- 运算符
- 正则表达式
- 隐式类
- 异常处理
- 高级类型
- 结构类型
- 复合类型