gpt4 book ai didi

android - kotlin 中的 lambda 是如何赋值的

转载 作者:行者123 更新时间:2023-11-29 14:34:37 29 4
gpt4 key购买 nike

为了实现Handler().postDelayed()我需要在 postDelayed() 的第一个参数中添加一个 Runnable 对象:

private fun blankFields() {
blank_fields_error.visibility = View.VISIBLE
Handler().postDelayed({blank_fields_error.visibility = View.INVISIBLE}, 5000)
}

我试图理解 {blank_fields_error.visibility = View.INVISIBLE} 为什么是 lambda,仅仅是因为它被包裹在 {} 中。这是否意味着如果包裹在 {} 中,任何赋值都可以是 lambda?

最佳答案

一个简单的 {}

的简短版本
{ (parameters) /* From 0 to n */ ->
// Deal with it
}

parameter 可以用关键字 it 代替,因为它只是一个参数,不需要显示(如果只有一个参数)。

在您的情况下,{} 没有参数。所以这将是一个无参数函数。

在 Kotlin 中,lambda 是用作另一个函数参数的函数(a 高阶函数)。

在您的情况下,lambda 是一个表示可运行接口(interface)的函数(请注意,如果您使用的是 Kotlin,它就是一个函数)。 postDelayed 接受一个可运行的 ()->Unit 和一个 long 值。

关于android - kotlin 中的 lambda 是如何赋值的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54732463/

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