面试题答案
一键面试定义方式
- 局部函数:在函数内部定义的函数。
fun outerFunction() {
val num = 10
fun innerFunction() {
println("局部函数访问外部函数变量: $num")
}
innerFunction()
}
- 匿名函数:没有函数名的函数,可赋值给变量。
val anonymousFunction = fun(x: Int, y: Int): Int {
return x + y
}
作用域
- 局部函数:作用域仅限于包含它的外部函数内部,外部函数的局部变量对局部函数可见。
- 匿名函数:取决于其定义位置,可在全局、函数内等定义,在函数内定义时可访问函数内局部变量。
使用场景
- 局部函数:适用于只在某个函数内部使用,且逻辑紧密相关的功能。例如在复杂算法函数中,将部分逻辑抽取为局部函数,增强代码可读性和可维护性。
- 匿名函数:常用于作为高阶函数的参数,如传递给集合的
map
、filter
等函数。
val list = listOf(1, 2, 3)
val result = list.map(fun(num: Int): Int {
return num * 2
})
println(result)