函数与 Lambda
定义带参数和返回类型的函数,使用默认参数和命名参数,并编写简洁的 Lambda 表达式。
函数与 Lambda 是 CoddyKit 上的免费 Android Academy 课时。 这是第 2 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Android Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Android Academy 课程共包含 3 节课。
为什么需要函数
函数可以让您只编写一次代码块,然后在任何地方重复使用。
- 减少重复
- 让代码更易读、更易测试
- 将大问题拆分成更小的部分
在 Kotlin 中,函数是一等公民——您可以将它们存储在变量中,也可以将它们传递给其他代码。
基本函数语法
Kotlin 函数使用 fun 关键字:
fun greet(name: String): String {
return "Hello, $name!"
}
fun main() {
val msg = greet("Alice")
println(msg) // Hello, Alice!
println(greet("Bob")) // Hello, Bob!
}单表达式函数
当函数体只有一个表达式时,您可以使用 =,省略大括号和 return:
fun square(n: Int): Int = n * n
fun add(a: Int, b: Int) = a + b // type inferred
fun main() {
println(square(5)) // 25
println(add(3, 7)) // 10
}默认参数与命名参数
Kotlin 函数支持默认参数值,因此不需要重载:
- 默认参数:
fun greet(name: String = "World") - 命名参数:使用
greet(name = "Alice")调用,从而跳过位置顺序
默认参数与命名参数的实际用法
默认参数可以让您的 API 保持简洁:
fun buildProfile(
name: String,
age: Int = 0,
role: String = "User"
): String {
return "$name | age=$age | $role"
}
fun main() {
println(buildProfile("Alice"))
println(buildProfile("Bob", age = 30))
println(buildProfile("Carol", 25, "Admin"))
}什么是 lambda
lambda 是匿名函数,也就是没有名称的函数。
- 语法:
{ params -> body } - 存储在变量中:
val double = { x: Int -> x * 2 } - 作为参数传递给另一个函数
在 Android 中,lambda 随处可见:点击监听器、列表转换和协程中都会用到。
Lambda 示例
像使用普通函数一样存储并调用 lambda:
fun main() {
val double = { x: Int -> x * 2 }
println(double(4)) // 8
val add = { a: Int, b: Int -> a + b }
println(add(3, 5)) // 8
// Lambda with no params
val sayHi = { println("Hi!") }
sayHi() // Hi!
}高阶函数
高阶函数以另一个函数作为参数,或返回一个函数。
Kotlin 标准库中有许多高阶函数:filter、map、forEach。
尾随 lambda 语法:当最后一个参数是 lambda 时,可以将它移到括号外。
尾随 Lambda 语法
将 lambda 作为最后一个参数传递,并放在括号外:
fun applyTwice(n: Int, operation: (Int) -> Int): Int {
return operation(operation(n))
}
fun main() {
val result = applyTwice(3) { x -> x * 2 }
println(result) // 12 (3 * 2 = 6, 6 * 2 = 12)
// 'it' is the implicit single parameter
val doubled = applyTwice(5) { it + it }
println(doubled) // 20
}快速检查
查看这段代码。它会打印什么?
val triple = { x: Int -> x * 3 }
println(triple(4))
回顾:函数与 Lambda
您已经学会了以下内容:
fun用于定义带参数和返回类型的函数- 单表达式函数使用
=简写 - 默认参数和命名参数可以替代重载
- Lambda 是匿名函数:
{ params -> body } - 高阶函数可以接收函数作为参数
下一步:使用条件和循环控制程序流程。
用 AI 导师学习 Kotlin — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 36
- 课程
- 152
常见问题解答
「函数与 Lambda」课时是免费的吗?
是的 — 「函数与 Lambda」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Android Academy 课程的其余内容,请升级到 CoddyKit PRO。 Android Academy 课程共包含 3 节课。
「函数与 Lambda」这节课中我会学到什么?
定义带参数和返回类型的函数,使用默认参数和命名参数,并编写简洁的 Lambda 表达式。 你通过在浏览器中直接运行的动手代码来练习 Android Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Android Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Android Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 3 节。
「函数与 Lambda」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Android Academy 课中编写并运行代码吗?
能。每节 Android Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。