Kotlin Lambda 语法说明

贾努普拉萨德

我是 Kotlin 初学者,渴望了解 println 的 lambda 表达式的行为。不幸的是,两个函数都在做同样的工作。

    val printFunction1:(String) -> Unit = {
        println("Hello, $it!")
    }

    val printFunction2 = {
        user: String ->
        println("Hello, $user!")
    }

我可以这样调用函数,如果有人能解释一下就好了。

 printFunction1("Bini")
 printFunction2("Jenu")
s1m0nw1

您希望函数的行为是什么样的?

第一个具有显式函数类型 (String) -> Unit这样,您无需String在 lambda 中指定参数类型您可以仅使用itlambdas 的单个参数的隐式名称)作为String.

第二个没有指定类型,你需要告诉编译器你的 lambda 参数有什么类型,你用user: String ->. 请注意,将此部分移动到带有左括号的行更为惯用:

val printFunction2 = { user: String ->
    println("Hello, $user!")
}

否则我看不到这里有什么奇特的事情发生。如果您需要进一步说明,请告诉我。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章