美文网首页
什么是 Kotlin 中的尾随 Lambda 和逗号?

什么是 Kotlin 中的尾随 Lambda 和逗号?

作者: 小城哇哇 | 来源:发表于2022-08-10 13:56 被阅读0次

    尾随 lambda 和尾随逗号是 Kotlin 的 2 个重要特性,如果您是 Kotlin 新手,您必须知道!

    尾随 lambda在 Kotlin 中是其他编程语言所没有的新事物。至少,我不知道有任何其他编程语言支持它。

    当你看到这样的代码时:

    var result = operateOnNumbers(a, b) { input1, input2 ->
        input1 + input2
    }
    println(result)
    
    

    它基本上意味着operateOnNumbers()有3个参数。最后一个参数是一个函数定义,你通常要么传入函数引用,要么传入lambda

    var result = operateOnNumbers(
        input1 = a,
        input2 = b,
        operation = { input1, input2 ->
            input1 + input2
        }
    )
    println(result)
    
    

    不知何故,我仍然不习惯这种尾随的 lambda 语法。它看起来像一个函数实现。

    所以每次看到 Trailing Lambda 语法时,我的脑海里总是需要自动映射到这个(括号外的代码实际上是函数的最后一个参数)。

    的签名和实现operateOnNumbers()如下所示:

    fun operateOnNumbers(
        input1: Int,
        input2: Int,
        operation: (Int, Int) -> Int): Int {
    
        return operation(input1, input2)
    }
    
    

    另一方面,尾随逗号在其他语言中很常见。

    尾随逗号

    var result = operateOnNumbers(
        a, 
        b, // trailing comma here
    ) { input1, input2 ->
        input1 + input2
    }
    
    

    没有尾随逗号

    var result = operateOnNumbers(
        a, 
        b // no trailing comma here
    ) { input1, input2 ->
        input1 + input2
    }
    
    

    使用它的好处是可以更轻松地进行差异和合并。对我来说,它使我的复制和粘贴生活更轻松。是的,我做了很多复制和粘贴!

    结论

    我希望你喜欢这篇短文。我想写一篇关于这个的博客(尤其是 Trailing Lambda),因为它有时让我感到困惑,尤其是函数调用有点复杂。我总是需要提醒自己,括号外的代码其实是函数的最后一个参数

    链接:https://vtsen.hashnode.dev/what-is-trailing-lambda-and-comma-in-kotlin

    相关文章

      网友评论

          本文标题:什么是 Kotlin 中的尾随 Lambda 和逗号?

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