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

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

run

run 函數在 Kotlin 程式語言中具有讓人驚豔的多功能性,可以被視為 let 函數和 with 函數的完美結合。為什麼這麼說呢?因為 run 函數不僅能夠像 let 函數一樣優雅地處理物件是否為 null 的情況,同時也像 with 函數一樣提供了對同一個對象進行多次屬性設定的便捷方式。這種集合了兩者優點的特性,使得 run 函數在 Kotlin 中成為一個相當強大且實用的工具。

run 區域函數基本用法

run 區域函數,讓你在特定的作用域內直接呼叫該物件的成員函數或屬性,而無需重複使用該物件名稱。在這次範例中,我們使用 run 函數直接呼叫 dataIsLong 函數,判斷字串長度是否超過五個字元,這樣做不僅簡化了程式碼,也增加了可讀性。

fun dataIsLong(data: String) = data.length > 5

fun main() {
//使用前
dataIsLong("1") //false
dataIsLong("123456789") //true

//使用後
"1".run(::dataIsLong) //false
"123456789".run(::dataIsLong) //true
}

run 區域函數,連續呼叫使用範例

在這個範例中,我們連續使用 run 函數,將字串長度檢查的結果直接傳遞給 getResult 函數並印出結果。這種風格不僅提高了程式碼的簡潔度,還使得程式邏輯更易於理解。

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 區域函數功能表

run 區域函數功能表

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

run 函數在 Android 應用中有極佳的適用性。舉例來說,假設我們有一個 TextView 物件,以往設置其屬性時常常需要使用 ?. 來避免空指針錯誤,透過run 函數,這樣的寫法不僅更為清晰,也減少了重複調用 textView 物件的情況,使得程式碼更加簡潔易讀。

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
}
留言
avatar-img
留言分享你的想法!
avatar-img
HKT實驗室
22會員
261內容數
哈囉!歡迎光臨我的沙龍!我是 KT,一位對應用程式開發充滿熱情的開發者。在這個專屬空間,我將與您分享我在應用開發領域的深入學習心得和豐富的實戰經驗。如果您對應用程式開發技術同樣充滿好奇,渴望不斷探索新知,歡迎成為我們的會員,一起在應用程式開發的旅途上,探索更深層次的技術世界,享受學習的樂趣。
HKT實驗室的其他內容
2023/12/15
本文介紹 Kotlin 中的延遲初始化(lateinit)和懶加載(lazy)的使用方法,以及它們之間的差異。這些關鍵字能夠提升程式效能並簡化程式碼撰寫。
Thumbnail
2023/12/15
本文介紹 Kotlin 中的延遲初始化(lateinit)和懶加載(lazy)的使用方法,以及它們之間的差異。這些關鍵字能夠提升程式效能並簡化程式碼撰寫。
Thumbnail
2023/12/11
空值例外是開發中一個常見的風險,特別是在 Kotlin 和 Java 這樣的跨平台開發中更容易出現。藉由合理地運用 Kotlin 的空值安全機制以及對 Java 程式碼的註解,可以有效地降低程式錯誤的風險,提高程式碼的可靠性和穩定性。
Thumbnail
2023/12/11
空值例外是開發中一個常見的風險,特別是在 Kotlin 和 Java 這樣的跨平台開發中更容易出現。藉由合理地運用 Kotlin 的空值安全機制以及對 Java 程式碼的註解,可以有效地降低程式錯誤的風險,提高程式碼的可靠性和穩定性。
Thumbnail
2023/12/11
在 IntelliJ IDEA 建立 Kotlin 專案時,要執行 Java 程式只需將其檔案命名為 .java,並放置在專案的 java 目錄中。這樣就可以順利執行該 Java 程式。
Thumbnail
2023/12/11
在 IntelliJ IDEA 建立 Kotlin 專案時,要執行 Java 程式只需將其檔案命名為 .java,並放置在專案的 java 目錄中。這樣就可以順利執行該 Java 程式。
Thumbnail
看更多
你可能也想看
Thumbnail
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
提供一條簡單公式、一套盤點思路,幫助你快速算出去日本自助旅遊需要準備多少日幣現金!
Thumbnail
提供一條簡單公式、一套盤點思路,幫助你快速算出去日本自助旅遊需要準備多少日幣現金!
Thumbnail
Kotlin 的函式可以作為參數使用,它們被歸類為一種資料型別,稱為「Function Types」。當 Java 呼叫這種型別的 Kotlin 函式時,會使用 invoke 關鍵字進行呼叫。通過反編譯程式碼,可以得知 Kotlin 中的 Function Types 資訊。
Thumbnail
Kotlin 的函式可以作為參數使用,它們被歸類為一種資料型別,稱為「Function Types」。當 Java 呼叫這種型別的 Kotlin 函式時,會使用 invoke 關鍵字進行呼叫。通過反編譯程式碼,可以得知 Kotlin 中的 Function Types 資訊。
Thumbnail
let 區域函數是 Kotlin 中一個非常實用的工具,特別適用於處理可空對象。它讓程式碼更加簡潔、安全,同時提高了可讀性。透過 let 區域函數,我們可以更優雅地處理可空性問題,使得程式開發更加高效順暢。
Thumbnail
let 區域函數是 Kotlin 中一個非常實用的工具,特別適用於處理可空對象。它讓程式碼更加簡潔、安全,同時提高了可讀性。透過 let 區域函數,我們可以更優雅地處理可空性問題,使得程式開發更加高效順暢。
Thumbnail
run 函數,可以把它視為 let 和 with 兩者合而為一出來的一個函數。怎麼說呢? 因為 run 函數,如同 let 函數可以優雅的判斷物件是否為 null。也同時擁有 with 函數,對同一個對象多次設定屬性的便捷寫法。
Thumbnail
run 函數,可以把它視為 let 和 with 兩者合而為一出來的一個函數。怎麼說呢? 因為 run 函數,如同 let 函數可以優雅的判斷物件是否為 null。也同時擁有 with 函數,對同一個對象多次設定屬性的便捷寫法。
Thumbnail
在 Kotlin 程式語言中,當你使用 apply 函數時,你可以將其視為對該物件進行屬性設定的操作。 apply 函數讓你能夠直接在物件上執行多個設定操作,並返回該物件本身,讓程式碼更為簡潔而具有可讀性。這個函數特別適合在建立物件後立即對其屬性進行初始化或設定的情境下使用。
Thumbnail
在 Kotlin 程式語言中,當你使用 apply 函數時,你可以將其視為對該物件進行屬性設定的操作。 apply 函數讓你能夠直接在物件上執行多個設定操作,並返回該物件本身,讓程式碼更為簡潔而具有可讀性。這個函數特別適合在建立物件後立即對其屬性進行初始化或設定的情境下使用。
Thumbnail
本文介紹 Kotlin 中的預先條件函數(Preconditions)的使用,包括 checkNotNull、require、requireNotNull 和 assert 函數,這些函數有助於確保程式碼的穩定性和可靠性。
Thumbnail
本文介紹 Kotlin 中的預先條件函數(Preconditions)的使用,包括 checkNotNull、require、requireNotNull 和 assert 函數,這些函數有助於確保程式碼的穩定性和可靠性。
Thumbnail
在 kotlin 程式語言中,定義資料類型,最後加上問號「?」,則表示此筆資料可為空,可以指定 null 值。
Thumbnail
在 kotlin 程式語言中,定義資料類型,最後加上問號「?」,則表示此筆資料可為空,可以指定 null 值。
Thumbnail
存取可為空的變數,方式二: 使用 「let」 標準函數 kotlin 提供 「let」標準函數,用來檢查當資料值為 null,就不會去執行 {} 大括號裡面的程式區塊,反之資料不為空,則會執行大括號裡面的程式區塊。
Thumbnail
存取可為空的變數,方式二: 使用 「let」 標準函數 kotlin 提供 「let」標準函數,用來檢查當資料值為 null,就不會去執行 {} 大括號裡面的程式區塊,反之資料不為空,則會執行大括號裡面的程式區塊。
Thumbnail
在 Kotlin 中,使用函數當參數傳遞,記得將此函數前面加入 inline 關鍵字,可以降低資源消耗。若沒有使用 Inline 內聯此函數,會導致每個函數都被實體化 (Instance) 出來。
Thumbnail
在 Kotlin 中,使用函數當參數傳遞,記得將此函數前面加入 inline 關鍵字,可以降低資源消耗。若沒有使用 Inline 內聯此函數,會導致每個函數都被實體化 (Instance) 出來。
Thumbnail
在 Kotlin 程式語言中,使用 fun 關鍵字來定義函數,定義一個有返回值的函數。
Thumbnail
在 Kotlin 程式語言中,使用 fun 關鍵字來定義函數,定義一個有返回值的函數。
Thumbnail
在 Kotlin 程式語言中,當一個函數沒有指定返回資料類型,kotlin 預設為 Unit,類似 Java 中 void。
Thumbnail
在 Kotlin 程式語言中,當一個函數沒有指定返回資料類型,kotlin 預設為 Unit,類似 Java 中 void。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News