在Kotlin中,函数可以以函数字面值,局部函数和对象表达式的形式进行嵌套。以下是这三种情况的代码示例。
- 函数字面值(Function Literals):
val greet = { name: String ->val message = "Hello, $name"println(message)}greet("World") // 输出 "Hello, World"
在这个示例中,greet是一个函数字面值,它接受一个字符串参数name,然后打印出一条问候消息。
- 局部函数(Local Functions):
fun outerFunction() {fun innerFunction() {println("Inside Inner function.")}println("Inside Outer function.")innerFunction()}outerFunction()
在这个示例中,innerFunction是一个局部函数,它被定义在outerFunction函数内部。当调用outerFunction时,会先打印”Inside Outer function.”,然后调用innerFunction打印”Inside Inner function.”。
- 对象表达式(Object Expressions):
open class A {open fun foo() { println("A function") }}fun main() {val a = object : A() {override fun foo() {println("B function")}}a.foo() // 输出 "B function"}
在这个示例中,我们创建了一个匿名内部类(通过对象表达式),并重写了A类的foo方法。当调用a.foo()时,会打印”B function”。
