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: 递归函数必须指明返回值类型

在递归函数执行前, 是没有办法推断出函数的返回值类型的, 所以递归函数必须指明返回值类型

案例11: Scala 支持可变参数

Copyright © 尚硅谷大数据 2019 all right reserved,powered by Gitbook
该文件最后修订时间: 2019-07-02 08:12:45

results matching ""

    No results matching ""