kotlin内联函数let、with、run、apply、also
生活随笔
收集整理的這篇文章主要介紹了
kotlin内联函数let、with、run、apply、also
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
最近面試被問到kotlin內(nèi)聯(lián)函數(shù),這里作個簡單的總結(jié)
let
在函數(shù)體內(nèi)訪問該對象中的屬性或方法
判斷調(diào)用者是否為null (常用)
var text: String? = nulltext?.let { setText(it) }返回值為最后一行執(zhí)行結(jié)果或return表達式
with
常用反復調(diào)用同一個類的方法,可以省去重復書寫這類。比如在 RecyclerView.ViewHolder中
不用with時
holder.tvName.text = "zhangsan"holder.tvCancel.setOnClickListener {//TODO}使用with
with(holder) {tvName.text = "zhangsan"tvCancel.setOnClickListener {//TODO}}返回值為最后一行執(zhí)行結(jié)果或return表達式
run
可以理解成let 跟 with的結(jié)合體
不用run之前
使用run之后
holder?.run {tvName.text = "zhangsan"tvCancel.setOnClickListener {}}可以看出run可用于判空以及反復調(diào)用該對象屬性方法,返回值為最后一行執(zhí)行結(jié)果或return表達式
apply
跟run差不多,apply返回調(diào)用者本身,常用在初始化對象,比如初始化自定義dialog
不寫apply
使用apply函數(shù)
CircleDialog.Builder().apply {title = "警告"titleColor = Color.REDsetPositive("離開",{//TODO})setNegative("我不",{//TODO})}.show(supportFragmentManager)also
also可以理解為let的變種,他返回調(diào)用者本身。
總結(jié)
| let | it或指定名稱 | 返回值為最后一行執(zhí)行結(jié)果或return表達式 |
| with | this或者省略 | 返回值為最后一行執(zhí)行結(jié)果或return表達式 |
| run | this或者省略 | 返回值為最后一行執(zhí)行結(jié)果或return表達式 |
| apply | this或者省略 | 返回調(diào)用者本身 |
| also | it或指定名稱 | 返回調(diào)用者本身 |
更多細節(jié)請參考官方文檔https://kotlinlang.org/docs/reference/
總結(jié)
以上是生活随笔為你收集整理的kotlin内联函数let、with、run、apply、also的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SYDTEK OTA 蓝牙升级功能实现
- 下一篇: android 输入法遮挡布局解决方案