我想了解更多关于这个函数的信息,它不需要一个匿名函数吗?
class DevByteCountryPropertyListener(val clickListener: (countryId : String ) -> Unit) {
fun onClick(devByteCountryProperty: DevByteCountryProperty) = clickListener(devByteCountryProperty.id)
}发布于 2021-08-09 17:05:07
如果您指的是构造函数中的clickListener参数,那么这不是一个实际的函数--它是一个函数类型。您只是在描述传入的函数应该是什么样子的。
当你想要调用构造函数并传入一个函数时,你需要决定是传入一个匿名函数,还是一个lambda函数,或者一个函数引用。在DevByteCountryPropertyListener内部没有区别-- clickListener始终只是一个接受String且不返回任何内容的函数,它并不知道或关心该函数是如何定义和创建的。
这是关于anonymous functions的文档-就像它所说的,它基本上是一个lambda,除了你可以定义返回类型之外,而且它没有那么简洁和可读性。它之所以被称为匿名,是因为你实际上并没有给函数命名--所以你不能在其他地方引用它,你一创建它就会使用它,例如,把它传递给这个构造函数。
https://stackoverflow.com/questions/68715588
复制相似问题