美文网首页
[日更][21]-Kotlin

[日更][21]-Kotlin

作者: 代码多哥 | 来源:发表于2023-08-31 14:16 被阅读0次

因为时间很短,所以内容不是很复杂,写一个有价值的小知识,主要是为了保持每日学习和写作的习惯,大作还是会写到相关的主题里面,尽量做到周更。敬请关注本人的主要作品集:

一路向下之AOSP研究

为了能够最大限度的保证文章的质量,日更主要采用翻译的方法来完成。本系列将主要翻译Kotlin官网的内容。具体的地址

https://kotlinlang.org/docs/home.html

二十, 函数-Lambda表达式-从函数中返回一个lambda

Lambda表达式可以从函数中返回。为了让编译器了解返回的lambda表达式是什么类型,您必须声明一个函数类型。
在以下示例中,toSeconds() 函数的函数类型为(Int) -> Int,因为它总是返回一个lambda表达式,该表达式接受Int类型的参数并返回Int值。
此示例使用when表达式来确定在调用toSeconds() 时返回哪个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
}

相关文章

网友评论

      本文标题:[日更][21]-Kotlin

      本文链接:https://www.haomeiwen.com/subject/sutimdtx.html