kotlin通用的 invoke()传值回调函数使用步骤

问题:怎么在B类任意方法事件触发时,把必要的字段回调传回到A类中?

举例

name:String //名字 "马云"

age:Int //年龄 50

怎么把name,age字段从B类任意事件方法中回调传到A类中

第一步、A.class 里

1. A类中任意位置赋值B类中的callback字段 

      // B()表示创建B类实例对像,callback 是B类中的高阶函数的名字 ,::a 表示A类中的函数方法 
      B().callback = ::a   

     2. A类中接收B类回调回来的name和age的值

         //此处接收name和age传回来的值
         fun a(name: String,age:Int){ }

第二步、B.class 里

      1.B类中任意位置定义高阶函数callback
       var callback: ((name: String,age: Int) -> Unit)? = null

    2.B类任意方法事件中用invoke()   
       //此处给name和age赋值,并通过ivoke()把值回传到A类中
        name= "马云";
        age    =50;
        callback?.invoke(name,age)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Kotlin 中,函数的参数可以分为两种类型:入参(参数)和出参(返回值)。 出参(返回值)是函数执行后返回给调用者的结果。在 Kotlin 中,通过使用 `fun` 关键字定义函数时,可以在函数签名后面使用冒号 `:` 指定函数的返回类型。例如: ```kotlin fun add(a: Int, b: Int): Int { return a + b } ``` 在上面的例子中,函数 `add` 接受两个整数参数 `a` 和 `b`,并返回它们的和。返回类型 `Int` 指定了函数的出参类型。 对于回调函数,它是一种常见的编程模式,在异步操作中经常使用。在 Kotlin 中,可以通过高阶函数(Higher-Order Function)来实现回调函数的传递。 一个简单的回调函数示例: ```kotlin fun processData(data: String, callback: (String) -> Unit) { // 模拟处理数据的操作 val processedData = data.toUpperCase() // 调用回调函数,传递处理后的结果 callback(processedData) } fun main() { val data = "Hello, world!" processData(data) { result -> println("Processed data: $result") } } ``` 在上述示例中,我们定义了一个名为 `processData` 的函数,接受一个字符串参数 `data` 和一个回调函数 `callback`。回调函数是一个接受字符串参数并不返回任何结果的函数。 在 `main` 函数中,我们调用了 `processData` 函数,并传递了一个 lambda 表达式作为回调函数。这个 lambda 表达式会在 `processData` 函数内部被调用,并打印出处理后的结果。 通过使用回调函数,我们可以在异步操作完成后得到通知,并处理操作的结果。这种模式非常适用于处理长时间运行的操作、网络请求等异步任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dl6655

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值