Kotlin中的接口回调
生活随笔
收集整理的這篇文章主要介紹了
Kotlin中的接口回调
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
java的接口回調(diào)相信大家都用的相當熟練。不過轉(zhuǎn)戰(zhàn)到Kotlin該怎么寫接口回調(diào)?
本文你會學到單參數(shù)回調(diào),多參數(shù)回調(diào)的寫法,直接上代碼;
上面的邏輯就是Test需要一個計算結(jié)果來自于MathUtils,而Test不關(guān)心計算的過程,只需要這個計算的結(jié)果。我們很自然的就是想到了接口回調(diào)。
我們一句句理解這句話
private lateinit var listen: ((Int) -> Unit)這里的lateinit就是稍后初始化 listen變量的屬性是 ((Int) -> Unit)
意思就是listen是個函數(shù)類型變量 入?yún)⑹菃螀?shù)Int類型,無返回值
看這里
fun getResult() {
println("經(jīng)過一系列耗時運算獲得結(jié)果")
var sum = 200
listen.invoke(sum)
}
其中l(wèi)isten.invoke(sum)就是將計算結(jié)果sum傳入listen函數(shù)
在activity中設(shè)置傳入一個((Int) -> Unit類型的函數(shù)就可以監(jiān)聽到計算結(jié)果
mathUtlils.setListen {println("計算的結(jié)果 $it")}那么多參數(shù)回調(diào)怎么寫?
private lateinit var saveListen: ((Boolean, File) -> Unit)fun setListen(saveListen: ((Boolean, File) -> Unit)) {this.saveListen = saveListen} ImageSaver.setListen { boolean, file ->}看懂了吧,在括號中增加想要的參數(shù)類型即可。 熟能生巧,敲起來就明白是怎么一回事啦。 Kotlin的回調(diào)運用的就是函數(shù)思維模式,慢慢習慣他,代碼會更加的簡潔優(yōu)雅。
總結(jié)
以上是生活随笔為你收集整理的Kotlin中的接口回调的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DialogFragment 全屏显示
- 下一篇: DP PX转换