前言
Kotlin 语法糖的总结和原理分析。
Kotlin 提供了许多实用的语法糖,例如扩展函数、object 单例、apply/run/with 等内置函数,极大地提升了开发者的编码效率和代码可读性。本文将对 Kotlin 中常见的语法糖进行系统梳理和总结,重点分析标准库内置函数的实现原理及适用场景。
Syntactic Sugar
内置函数
kotlin-stdlib 内的 Standard.kt 文件定义了几个比较实用的顶层函数,比如 let、run、with、apply、also 等。这几个函数的功能比较相似,但又略微有些差异,在此梳理一下。
示例对比
class Sugar(val name: String, var age: Int, val happy: Boolean)
fun printInfo(sugar: Sugar) {
println("Sugar(name=${sugar.name}, age=${sugar.age}, happy=${sugar.happy})")
}
fun main() {
val sugar = Sugar("mike", 21, true)
printInfo(sugar)
// let: 返回 Lambda 最后一行结果,默认为 Unit
val letResult = sugar.let {
it.name = "let"
it.age = 9
}
printInfo(letResult)
// also: 返回调用者对象本身
val alsoResult = sugar.also {
it.name = "also"
it.age = 13
}
printInfo(alsoResult)
// with: 返回 Lambda 最后一行结果,默认为 Unit
val withResult = with(sugar) {
name = "with"
age = 10
}
printInfo(withResult)
runResult = sugar.run {
name =
age =
}
printInfo(runResult)
applyResult = sugar.apply {
name =
age =
}
printInfo(applyResult)
}


