【问题标题】:Question on lambda expressions as parameters关于 lambda 表达式作为参数的问题
【发布时间】:2020-05-22 15:51:47
【问题描述】:

我是一名刚接触 kotlin 的 Java 开发人员,下面的语法让我很惊讶:

    fun foo(m: String, bar: (m: String) -> Unit) {
        bar(m)
    }

    foo("test") {
        println("this is a $it")
    }

这里我们看到 lambda 表达式是通过代码块隐式传递的。

这种句法技巧有名称吗?我想更好地理解这一点。

【问题讨论】:

  • 您是在谈论它是如何在括号外传递的,还是只是它被传递了?能够完全传递它们就是 lambdas。
  • 括号外的事实
  • "Trailing lambda" kotlinlang.org/docs/reference/… 它们使链式函数式编程调用、作用域函数(let、apply、also 等)、协程语法和类型安全构建器的语法都更加简洁。跨度>

标签: function kotlin lambda


【解决方案1】:

谢谢@Tenfour04 - 我一直在寻找“尾随 lambda”。

https://kotlinlang.org/docs/reference/lambdas.html#passing-a-lambda-to-the-last-parameter

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    相关资源
    最近更新 更多