Kotlin面试题更新 2026-08-03

在 Kotlin 语言中,函数的定义方式有哪些?请列举并解释几种特殊的函数类型,例如高阶函数、扩展函数、内联函数等,并说明它们各自的特点和适用场景。

考察说明

考查对 Kotlin 函数定义语法及特殊函数类型的掌握程度。

回答思路

  1. 【回答框架 1】Kotlin 中函数使用 fun 关键字定义,基本语法为 fun 函数名(参数列表): 返回类型 { 函数体 }。返回类型可省略,由编译器推断。若返回 Unit 类型,可显式或隐式省略。
  2. 【回答框架 2】特殊函数类型包括:1. 高阶函数,即以函数为参数或返回函数的函数,常见于集合操作如 map、filter。2. 扩展函数,用于为现有类添加新方法,定义时在函数名前加上接收者类型,如 fun String.addPrefix(): String。3. 内联函数,通过 inline 关键字标记,减少高阶函数带来的运行时开销,但需注意内联可能导致代码膨胀。
  3. 【回答框架 3】其他特殊类型:1. lambda 表达式,可作为函数参数传递。2. 匿名函数,与 lambda 类似但更灵活。3. 顶层函数,定义在类外的函数。4. 局部函数,定义在函数体内。5. 尾递归函数,使用 tailrec 优化递归。
  4. 【关键点 1】函数定义用 fun 关键字,返回类型可推断。
  5. 【关键点 2】高阶函数接受或返回函数,lambda 是常见形式。
  6. 【关键点 3】扩展函数允许向现有类添加方法而不修改其定义。
  7. 【关键点 4】内联函数用 inline 标记,可减少高阶函数调用开销。
  8. 【关键点 5】特殊函数类型包括顶层函数、局部函数、尾递归函数等。
  9. 【易错点 1】混淆扩展函数与成员函数,扩展函数本质是静态方法,没有多态性。
  10. 【易错点 2】滥用内联函数可能导致代码体积膨胀,需权衡性能与体积。
  11. 【易错点 3】高阶函数若使用不当可能导致内存泄漏,如非局部返回时注意生命周期。