【问题标题】:koltin I understand the clickListener functionkotlin 我了解点击监听功能
【发布时间】:2021-10-13 08:31:47
【问题描述】:

我想了解更多关于这个函数的信息,它不需要匿名函数吗?

class DevByteCountryPropertyListener(val clickListener: (countryId : String ) -> Unit) {
    fun onClick(devByteCountryProperty: DevByteCountryProperty) = clickListener(devByteCountryProperty.id)
}

【问题讨论】:

    标签: android-studio kotlin android-recyclerview onclicklistener


    【解决方案1】:

    如果你指的是构造函数中的clickListener 参数,那不是一个实际的函数——它是一个函数type。您只是在描述传入的函数应该是什么样子。

    当您想要调用该构造函数并传入一个函数时,您需要决定是传入一个匿名函数、lambda 还是函数引用。 DevByteCountryPropertyListener 内部没有区别 - clickListener 始终只是一个接受 String 并且不返回任何内容的函数,它不知道也不关心该函数是如何定义和创建的。

    这是anonymous functions 上的文档——就像它说的那样,它基本上是一个 lambda,除了你可以定义返回类型,而且它的简洁性和可读性要差得多。它被称为 anonymous 因为你实际上并没有命名函数 - 所以你不能在其他任何地方引用它,你在创建它时立即使用它,例如将其传递给此构造函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多