日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Kotlin中的接口回调

發(fā)布時(shí)間:2025/4/5 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Kotlin中的接口回调 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

java的接口回調(diào)相信大家都用的相當(dāng)熟練。不過(guò)轉(zhuǎn)戰(zhàn)到Kotlin該怎么寫(xiě)接口回調(diào)?
本文你會(huì)學(xué)到單參數(shù)回調(diào),多參數(shù)回調(diào)的寫(xiě)法,直接上代碼;

/*** 文件:Test* 時(shí)間:2018/8/21.* 備注:*/ class Test:AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)var mathUtlils = MathUtils()println("開(kāi)始計(jì)算")mathUtlils.getResult()mathUtlils.setListen {println("計(jì)算的結(jié)果 $it")}} } /*** 文件:TestDemo* 時(shí)間:2018/8/21.* 備注:*/ class MathUtils {private lateinit var listen: ((Int) -> Unit)fun setListen(listen: ((Int) -> Unit)) {this.listen = listen}fun getResult() {println("經(jīng)過(guò)一系列耗時(shí)運(yùn)算獲得結(jié)果")var sum = 200listen.invoke(sum)} }

上面的邏輯就是Test需要一個(gè)計(jì)算結(jié)果來(lái)自于MathUtils,而Test不關(guān)心計(jì)算的過(guò)程,只需要這個(gè)計(jì)算的結(jié)果。我們很自然的就是想到了接口回調(diào)。

我們一句句理解這句話

private lateinit var listen: ((Int) -> Unit)

這里的lateinit就是稍后初始化 listen變量的屬性是 ((Int) -> Unit)

意思就是listen是個(gè)函數(shù)類型變量 入?yún)⑹菃螀?shù)Int類型,無(wú)返回值

看這里
fun getResult() {
println("經(jīng)過(guò)一系列耗時(shí)運(yùn)算獲得結(jié)果")
var sum = 200
listen.invoke(sum)
}
其中l(wèi)isten.invoke(sum)就是將計(jì)算結(jié)果sum傳入listen函數(shù)

在activity中設(shè)置傳入一個(gè)((Int) -> Unit類型的函數(shù)就可以監(jiān)聽(tīng)到計(jì)算結(jié)果

mathUtlils.setListen {println("計(jì)算的結(jié)果 $it")}

那么多參數(shù)回調(diào)怎么寫(xiě)?

private lateinit var saveListen: ((Boolean, File) -> Unit)fun setListen(saveListen: ((Boolean, File) -> Unit)) {this.saveListen = saveListen} ImageSaver.setListen { boolean, file ->}

看懂了吧,在括號(hào)中增加想要的參數(shù)類型即可。 熟能生巧,敲起來(lái)就明白是怎么一回事啦。 Kotlin的回調(diào)運(yùn)用的就是函數(shù)思維模式,慢慢習(xí)慣他,代碼會(huì)更加的簡(jiǎn)潔優(yōu)雅。

總結(jié)

以上是生活随笔為你收集整理的Kotlin中的接口回调的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。