8.2.7 函数作用域

在 Kotlin 中函数可以在文件顶层声明,这意味着你不需要像一些语言如 Java、C# 或 Scala 那样创建一个类来保存一个函数。此外除了顶层函数,Kotlin 中函数也可以声明在局部作用域、作为成员函数以及扩展函数。#### 局部函数(嵌套函数)

Kotlin 支持局部函数,即一个函数在另一个函数内部

  1. fun sum(x: Int, y: Int, z: Int): Int {
  2. val delta = 0;
  3. fun add(a: Int, b: Int): Int {
  4. return a + b + delta
  5. }
  6. return add(x + add(y, z))
  7. }

局部函数可以访问外部函数(即闭包)中的局部变量delta。

  1. println("sum(1,2,3) = ${sum(0, 1, 2, 3)}")

输出:sum(1,2,3) = 6#### 成员函数

成员函数是在类或对象内部定义的函数

  1. class Sample() {
  2. fun foo() { print("Foo") }
  3. }

成员函数以点表示法调用

  1. Sample().foo() // 创建类 Sample 实例并调用 foo