在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”。