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

[日更][22]-Kotlin

作者: 代码多哥 | 来源:发表于2023-09-01 09:00 被阅读0次

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

    一路向下之AOSP研究

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

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

    二十一, 函数-Lambda表达式-调用lambda

    1, 自行调用

    Lambda表达式可以通过在大括号{} 后面添加圆括号(), 并在圆括号中包含任何参数来自行调用一个Lambda:

    println({ string: String -> string.uppercase() }("hello"))
    

    2, 尾调用

    正如您已经看到的,如果lambda表达式是唯一的函数参数,则可以去掉函数圆括号()。如果lambda表达式作为函数的最后一个参数传递,则该表达式可以写在函数圆括号() 之外。在这两种情况下,此语法都被称为尾调用lambda。
    例如,.fold() 函数接受一个初始值和一个操作:

    // The initial value is zero. 
    // The operation sums the initial value with every item in the list cumulatively.
    println(listOf(1, 2, 3).fold(0, { x, item -> x + item })) // 6
    
    // Alternatively, in the form of a trailing lambda
    println(listOf(1, 2, 3).fold(0) { x, item -> x + item })  // 6
    

    我们的下一步是了解Kotlin的class

    译者备注

    • ()是一个操作符,对应于invoke函数,因此foo() 等价于foo.invoke()

    相关文章

      网友评论

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

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