6.4 函数的声明和调用实操
案例1: 类型推导
首先了解一点: 什么时候 scala 才会对我们的函数的返回值进行推断.
只有当你使用等号`=`将方法的声明和方法的主体部分区分开时
package com.atguigu.day03
object FunDemo {
def main(args: Array[String]): Unit = {
println(sum(10, 20))
}
def sum(a: Int, b: Int) = {
// return a + b // 错误! 类型推导不能出现 return
a + b
}
}
案例2: 返回值类型是隐式的Unit
案例3: 显示声明返回值是Unit
案例4: 返回值使用Any
如果明确无返回值, 或者返回值类型不确定, 返回值类型就设置为Any
案例5: 省略调用时的圆括号
如果
案例6: 声明函数时省略圆括号
如果不需要传入参数,
案例7: 参数的值不能修改
在 Scala 中, 函数参数默认是使用val
来声明的,所以形参的值不能修改.
案例8: 参数的默认值
Scala 运行形参带有默认值.
当调用函数的时候, 如果没有给这个参数传递值, 则会使用默认值, 这对那些不是必须要传值的参数很有用
没有默认值的参数, 我们一般称之为位置参数! 也就是说他们的值是按照位置的顺序来赋值的.
有一点需要注意: 如果想给位置参数赋值, 则前面的参数都必须传递数据过来赋值, 即使前面有默认值参数也不行.
案例9: 命名参数
如果一个函数的参数比较多, 并且有些还是带默认值的. 我们在调用的时候根据需要有些参数不需要传值, 则可以使用
命名参数: 就是指在
案例10: 递归函数必须指明返回值类型
在递归函数执行前, 是没有办法推断出函数的返回值类型的, 所以递归函数必须指明返回值类型