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

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

with

當我們需要對特定物件進行多個操作時,傳統的做法是每次都要重複寫下該物件的名稱,這不僅冗長,還可能降低程式碼的可讀性。而 with 函數則能夠解決這個問題,它的作用是將指定物件傳遞給 lambda 函數,在該函數內可以直接訪問該物件的屬性和方法。

with 區域函數,基本用法一

在這個範例中,我們創建了一個 mutableListOf 包含課程名稱的列表。在使用 with 函數前,我們需要分別使用 println 函數來輸出課程列表和其大小。而使用 with 函數後,我們可以直接在 lambda 函數中使用 this 來表示該列表,無需重複寫出變數名稱,程式碼更為簡潔。

fun main() {
val course = mutableListOf("Java", "Kotlin", "Android")

//使用前
println("$course")
println("${course.size}")


//使用後
with(course) {
println("$this")
println("$size")
}
}

with 區域函數,基本用法二

在這個範例中,我們直接對一個字串進行操作,判斷其是否包含特定字串。使用 with 函數讓我們可以在 lambda 函數內直接調用字串的 contains 方法,提高了程式碼的可讀性和簡潔性。

fun main() {
val dataIsContainHKT = with("HKT線上教室") {
contains("HKT")
}
println(dataIsContainHKT)
}

with 區域函數功能表

with 區域函數功能表

with 區域函數功能表

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

當我們需要對某個 View 執行多個操作時,例如改變文字、設定文字顏色和大小等,未使用 with 函數時,我們需要在每次操作之前都進行 null 檢查,以確保該 View 不為空。而使用 with 函數後,我們只需在一個區塊內對該 View 進行操作,無需重複進行 null 檢查,大幅提升了程式碼的簡潔性和可讀性。

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

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

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