gpt4 book ai didi

kotlin - Lambda 变量与函数引用

转载 作者:行者123 更新时间:2023-12-02 12:48:19 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Function definition: fun vs val

(2 个回答)


4年前关闭。




将 lambda 存储在变量中并重用它与使用函数引用有什么区别?

例如一个简单的过滤器:

val strings = listOf("One", null, "Three")

val noNulls: (String?) -> Boolean = { value -> value != null }
strings.filter(noNulls)

对比
fun noNulls(value: String?): Boolean = value != null
strings.filter(::noNulls)

最佳答案

在这两种情况下,它都会为 JVM 编译为一个专用的类,实现你传递给 filter 的对象的行为。 .

如果您的意图是在声明的范围内调用它们,则应该使用嵌套函数声明;如果您的意图是获取一个函数对象,那么请使用专门用于此目的的功能:lambda 表达式。

关于kotlin - Lambda 变量与函数引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48867537/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com