美文网首页Kotlin学习
Kotlin学习2-接口回调

Kotlin学习2-接口回调

作者: 海内灬存知己 | 来源:发表于2022-08-29 19:58 被阅读0次

java有接口回调,那么kotlin当然也有,而且比Java更简单,更高效!例如如下方法:

 //添加inline的目的是可以节约内存,匿名函数不会创建对象
    private inline fun method1(name: String, password: String, result: (String, Int) -> Unit) {
        if (name == "haha" && password == "123456") {
            result("sucess", 200)
        } else {
            result("fail", 300)
        }
    }

result: (String, Int) -> Unit这个参数就可以被认为是一个接口,这个是什么呢?它像不像一个未完成的匿名函数?所以匿名函数的作用就是体现在这里!这其实就是声明了传入类型无返回值的匿名函数。

如何调用?

写法一:这个比较特殊,参数可以写到外面(其实按照正常理解应该写到括号里),这是最常见的调用方式

        method1("haha", "123456") { msg: String, code: Int ->
            println("msg:$msg,code:$code")
        }

写法二:这种写法是正确的,但是不推荐,代码优雅性差,但是写法一明显是由写法二优化来的,可以通过它去理解写法一

        method1("haha", "123456", { msg: String, code: Int ->
            println("msg:$msg,code:$code")
        })

//写法三:比上面好点,但是也不是最推荐的写法

        method1("haha", "123456", result = { msg: String, code: Int ->
            println("msg:$msg,code:$code")
        })

//写法四:函数引用,因为method1是inline的,所以性能是没有影响的,好处是抽离出来,别人也可以用
::result这样写才是函数对象,才可以被当作参数调用

   fun main() {
        method1("haha", "123456", ::result)
    }
   private fun result(msg: String, code: Int) {
        println("msg:$msg,code:$code")
    }

最后,写一个匿名函数的完整版,kotlin的接口回调就是基于这个匿名函数的

        val result: (String, Int) -> Any = { msg, code ->
            println("msg:$msg,code:$code")
        }
        result("sucess", 200)
    }

相关文章

  • Kotlin学习2-接口回调

    java有接口回调,那么kotlin当然也有,而且比Java更简单,更高效!例如如下方法: result: (St...

  • kotlin 回调接口

    分2个角色,我和你1个接口,通道工具,通过这个工具来传递对话 1.我 我给你打电话,问你个问题获取答案调用你的...

  • Kotlin 接口回调

    单接口方法时候,只有一个参数,无返回值的情况下不需要定义接口,有返回值的时候只需将Unit改为返回值类型 多接口方法回调

  • Kotlin匿名内部类

    引言 匿名内部类常用作接口实现、回调等 java kotlin

  • Kotlin 的接口回调

    调用

  • Kotlin使用接口回调

    1.Java中的接口回调实现(支持多方法回调) 声明回调接口,初始化接口 使用接口回调(无参数) 使用接口回调(带...

  • Kotlin中使用高阶函数代替接口回调

    Kotlin中使用高阶函数代替接口回调 Java思路实现 1.创建接口,创建对应抽象方法2.声明接口成员变量3.创...

  • kotlin 接口回调的优化

  • Kotlin多参数回调

    1、单个参数回调: 2、多个参数回调: 3、java中调用Kotlin的回调 1、java中调用Kotlin回调 ...

  • Java回调深入理解

    1 接口回调 1.1 接口回调概念 什么是接口回调接口回调是指:可以把使用某一接口的类创建的对象的引用赋给该接口声...

网友评论

    本文标题:Kotlin学习2-接口回调

    本文链接:https://www.haomeiwen.com/subject/pddknrtx.html