怎么在Kotlin中使用Lambda设置回调作

今天就跟大家聊聊有关怎么在Kotlin中使用Lambda设置回调作,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

新建一个Kotlin类

classMyBean{

funtestcallback1(callback:(String)->Unit){
callback.invoke("这是回调的内容")
}

funtestcallback2(value1:Int,value2:Int,callback:(Int,Int)->Int):Int{
varresult=callback.invoke(value1,value2)
returnresult*3
}
}

进行调用

classMainActivity:AppCompatActivity(){

overridefunonCreate(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)

varbean=MyBean()
bean.testcallback1{m->toast(m)}

valresult=bean.testcallback2(1,2,{value1,value2->value1+value2})
toast("计算结果"+result.toString())
}
}

最后显示的结果

testcallback1的toast显示为: "这是回调的内容"testcallback2将value1和value2相加,最后再乘以3,故toast显示为9

补充知识:kotlin 定义接口并实现回调

开发环境 android studio 3.0.1 已支持 kotlin

1、定义接口

interfaceCallBack{
funcallBack(info:String)
}

2、实现接口 : 为继承\实现

classCallBacks:CallBack{
overridefuncallBack(info:String){
Log.d("MainApp","currentinfo$info")
}
}

或者

privatevarmCallBack=object:CallBack{
overridefuncallBack(info:String){
Log.d("MainApp","currentinfo$info")
}
}

3、定义带回调方法的函数

privatefuninitData(callBack:CallBack):Boolean{
callBack?.callBack("我来自回调")
returntrue
}

4、实现回调,调用方式与实现接口对应

initData(CallBacks())

或者

initData(mCallBack)

打印结果:

怎么在Kotlin中使用Lambda设置回调作

看完上述内容,你们对怎么在Kotlin中使用Lambda设置回调作有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注恰卡编程网行业资讯频道,感谢大家的支持。

发布于 2021-03-21 22:38:28
收藏
分享
海报
0 条评论
170
上一篇:怎么在python中拼接多行字符串 下一篇:如何在Pycharm中使用Python进行开发
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码