【Kotlin 入門指南】kotlin 區域函數 (Scope functions) - apply

2023/12/08閱讀時間約 4 分鐘
【Kotlin 入門指南】系列文章目錄:https://bit.ly/3t8awwL
Kotlin 線上課程教學影片:https://bit.ly/3qJ5a5Q

apply

在 Kotlin 程式語言中,當你使用 apply 函數時,你可以將其視為對該物件進行屬性設定的操作。 apply 函數讓你能夠直接在物件上執行多個設定操作,並返回該物件本身,讓程式碼更為簡潔而具有可讀性。這個函數特別適合在建立物件後立即對其屬性進行初始化或設定的情境下使用。

apply 區域函數,基本用法

在這個範例中,示範如何使用 apply 函數對一個 Account 物件進行屬性設定。可以看到,透過 apply 函數,我們能夠直接在大括號內部進行多個屬性的設定,讓程式碼更加簡潔易讀。

//宣告一個 Person 資料類別
data class Account(val name: String) {
var id:String = ""
var balance: Int = 0
var addr: String = ""
}

//使用前
val adam = Account("HKT線上教室")
adam.id = "qwerty1234"
adam.balance = 88888888
adam.addr = "台北101"

//使用後
val account = Account("HKT線上教室").apply {
id = "qwerty1234"
balance = 88888888
addr = "台北101"
}

println(account.name) //HKT線上教室
println(account.id) //qwerty1234
println(account.balance) //88888888
println(account.addr) //台北101

apply 與 run 函數差異比較

apply 函數與 run 函數有些類似,但其差異點在於返回值。apply 函數返回的是該物件本身,而 run 函數則是返回 Lambda 運算的結果。

在這個範例中,我們可以看到apply 函數返回的結果是原本的字串,而 run 函數返回的是運算結果。

fun main() {
val applyResult = "HKT線上教室".apply {
9 * 9
}

val runResult = "HKT線上教室".run {
9 * 9
}

println(applyResult)//HKT線上教室
println(runResult)//81
}

apply 區域函數功能表

apply 區域函數功能表

apply 區域函數功能表

apply 區域函數,在 Android 應用實戰範例

在設定 Android 元件的屬性時,若使用 apply 函數,可以省去多次判斷是否為 null 的步驟,使程式碼更加簡潔清晰,透過 apply 函數,我們能夠直接對 textView 物件進行屬性設定,而不需要多次進行 null 判斷,提高了程式碼的可讀性與維護性。

val textView : TextView = findViewById(R.id.textView)

//未使用 run 區域函數,每次使用都要「?.」判斷是否為 null
textView?.text = "HKT線上教室"
textView?.setTextColor(Color.parseColor("#ffd700"))
textView?.textSize = 66f

//使用 apply 區域函數
textView.apply {
text = "HKT線上教室"
setTextColor(Color.parseColor("#ffd700"))
textSize = 66f
}
3會員
176內容數
本指南將以清晰易懂的方式介紹基礎概念,讓你能夠快速上手,輕鬆踏上學習 Kotlin 的旅程 透過簡單易懂的方式,讓你將能夠在短時間內建立起對 Kotlin 的基本了解,並開始實際應用於你的專案之中。不論你是想要進入 Android 開發領域或者只是想探索新的程式語言,這份指南都會成為你學習 Kotlin 的理想起點。
留言0
查看全部
發表第一個留言支持創作者!