Kotlin 教學【從零開始學 Kotlin 程式設計】kotlin 區域函數 (Scope functions) - run
【從零開始學 Kotlin 程式設計】
線上教學課程目錄:https://bit.ly/2Kx7GrM
Youtube 課程播放清單:https://bit.ly/3qJ5a5Q
run
run 函數,可以把它視為 let 和 with 兩者合而為一出來的一個函數。怎麼說呢?
因為 run 函數,如同 let 函數可以優雅的判斷物件是否為 null。也同時擁有 with 函數,對同一個對象多次設定屬性的便捷寫法。
run 區域函數,基本用法
fun dataIsLong(data: String) = data.length > 5
fun main() {
//使用前
dataIsLong("1") //false
dataIsLong("123456789") //true
//使用後
"1".run(::dataIsLong) //false
"123456789".run(::dataIsLong) //true
}
run 區域函數,連續呼叫使用範例
fun dataIsLong(data: String) = data.length > 5
fun getResult(isTooLong: Boolean): String {
return if (isTooLong) {
"資料錯誤"
} else {
"資料正確"
}
}
fun main() {
// 傳統連續呼叫方式
println(getResult(dataIsLong("123456")))
//使用 run ,連續呼叫範例
"123456"
.run(::dataIsLong)
.run(::getResult)
.run(::println)
}
run 區域函數功能表
函數名稱 | 物件參考名稱 | 返回值 | 是否為擴展函數 |
---|---|---|---|
run | this | Lambda 運算結果 | 是 |
run | - | Lambda 運算結果 | 不是:呼叫不用 Context 物件 |
run 區域函數,在 Android 應用實戰範例
val textView : TextView = findViewById(R.id.textView)
//未使用 run 區域函數,每次使用都要「?.」判斷是否為 null
textView?.text = "HKT線上教室"
textView?.setTextColor(Color.parseColor("#ffd700"))
textView?.textSize = 66f
//使用 run 區域函數
textView.run {
text = "HKT線上教室"
setTextColor(Color.parseColor("#ffd700"))
textSize = 66f
}
那這次的課程就介紹到這邊囉~
順帶一提,KT 線上教室,臉書粉絲團,會不定期發佈相關資訊,不想錯過最新資訊,不要忘記來按讚,加追蹤喔!也歡迎大家將這套課程分享給更多人喔。
我們下次再見囉!!!掰掰