Kotlin 2.2.0 文档阅读
Stephen
Android / AI 应用开发者 · 发布于 2023年11月9日
Kotlin 2.2.0 文档阅读
原文链接:
Kotlin Language Documentation 2.2.0
查漏补缺
lambda作为函数参数类型
这个操作平时使用较少,将lambda作为返回参数类型的场景。例如:
val upperCaseString: (String) -> String = { text -> text.uppercase() }
fun main() {
println(upperCaseString("hello"))
// HELLO
}
将一个字符串对象全部转换为大写,将 upperCaseString 声明为lambda类型,就可以作为参数传递。
另外一种用法是作为返回的参数类型。
fun toSeconds(time: String): (Int) -> Int = when (time) {
"hour" -> { value -> value * 60 * 60 }
"minute" -> { value -> value * 60 }
"second" -> { value -> value }
else -> { value -> value }
}
fun main() {
val timesInMinutes = listOf(2, 10, 15, 1)
val min2sec = toSeconds("minute")
val totalTimeInSeconds = timesInMinutes.map(min2sec).sum()
println("Total time is $totalTimeInSeconds secs")
// Total time is 1680 secs
}
toSeconds 函数会根据传入的用法名称,返回一个lambda类型的函数,该函数将一个Int类型的参数转换为另一个Int类型的参数。
页码92