kotlin通用的invoke()函数

Posted 黄毛火烧雪下

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kotlin通用的invoke()函数相关的知识,希望对你有一定的参考价值。

invoke()方法是kotlin对象类中默认持有的方法,可以通过operator关键字重载invoke()方法

enum class OperatorTest {

    TEST;

    operator fun invoke(data: String){
        Log.d("LogUtils","data : $data")
    }
}

fun execute(){
    val start = OperatorTest.TEST
    //原始调用方式
    start.invoke("测试1")
    //简化调用方式
    start("测试2")
}

运行结果

D/LogUtils: data : 测试1
D/LogUtils: data : 测试2

 

kotlin类默认含有invoke()方法,并且可以通过operator关键字重载,可以采用原始调用方式:class.invoke(···);kotlin允许简易调用:class()

以上是关于kotlin通用的invoke()函数的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin invoke约定,让Kotlin代码更简洁

如何从片段 KOTLIN 中调用意图 [重复]

Kotlin 匿名扩展函数作为参数时的语义

将接口从片段传递到kotlin中的活动

java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常(代码片段

Android 上的 Kotlin:如何在片段中使用数据库中的 LiveData?