【Kotlin 入門指南】延遲屬性 (Lazy properties)

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

延遲屬性

延遲屬性是指當你在對象內聲明一個屬性時,不會立即為其分配記憶體或初始化值。相反,該屬性的初始化會被推遲到首次使用它的時候。這個特性特別有助於減少不必要的初始化和資源的浪費,因為它僅在需要時才執行初始化過程。

延遲屬性範例

在這個範例中,我們建立了一個延遲屬性 lazyValue,當你第一次訪問它時,lambda 表達式會執行並初始化這個屬性的值。之後,這個值會被存儲,並在後續的訪問中被重複使用。

val lazyValue: String by lazy {
println("computed!") //第一次呼叫,會執行,之後呼叫不會
"Hello"
}

fun main() {
println(lazyValue) //第一次呼叫
println(lazyValue) //第二次呼叫
}

Android 相關應用

在 Android 開發中,善用延遲屬性技巧能夠提升程式效率與品質。

//View Binding
private val binding by lazy {
ActivityMainBinding.inflate(layoutInflater)
}

//intent 頁面互相傳遞資料 getStringExtra
//private var name: String? = null //指定 null 不安全
private val name: String by lazy {
intent.getStringExtra("name")
}

//MutableLiveData
val currentResult: MutableLiveData<String> by lazy {
MutableLiveData<String>()
}

延遲屬性的適用情境

延遲屬性特別適用於需要耗費較多資源或時間的初始化過程,例如資料庫連接、複雜計算或網路請求。通過延遲初始化這些屬性,你可以在需要時再執行初始化,從而提高應用程式的性能和效率。

留言
avatar-img
HKT實驗室
28會員
278內容數
哈囉!歡迎光臨我的沙龍!我是 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
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
本文介紹 Kotlin 中的延遲初始化(lateinit)和懶加載(lazy)的使用方法,以及它們之間的差異。這些關鍵字能夠提升程式效能並簡化程式碼撰寫。
Thumbnail
本文介紹 Kotlin 中的延遲初始化(lateinit)和懶加載(lazy)的使用方法,以及它們之間的差異。這些關鍵字能夠提升程式效能並簡化程式碼撰寫。
Thumbnail
當你在 Kotlin 程式語言中定義一個有預設參數的函數功能,並給它預設值,@JvmOverloads 可以自動產生多個重載版本的 Java 方法,每個版本都省略了部分參數,讓 Java 代碼可以更簡潔地呼叫這些方法,而不需要填寫所有參數。不會因為沒有預設值,而顯示錯誤。
Thumbnail
當你在 Kotlin 程式語言中定義一個有預設參數的函數功能,並給它預設值,@JvmOverloads 可以自動產生多個重載版本的 Java 方法,每個版本都省略了部分參數,讓 Java 代碼可以更簡潔地呼叫這些方法,而不需要填寫所有參數。不會因為沒有預設值,而顯示錯誤。
Thumbnail
let 區域函數是 Kotlin 中一個非常實用的工具,特別適用於處理可空對象。它讓程式碼更加簡潔、安全,同時提高了可讀性。透過 let 區域函數,我們可以更優雅地處理可空性問題,使得程式開發更加高效順暢。
Thumbnail
let 區域函數是 Kotlin 中一個非常實用的工具,特別適用於處理可空對象。它讓程式碼更加簡潔、安全,同時提高了可讀性。透過 let 區域函數,我們可以更優雅地處理可空性問題,使得程式開發更加高效順暢。
Thumbnail
本指南介紹了 Kotlin 中類別的主構造函數和次要構造函數的使用方法,並提供了相應的程式碼範例和初始化順序說明。
Thumbnail
本指南介紹了 Kotlin 中類別的主構造函數和次要構造函數的使用方法,並提供了相應的程式碼範例和初始化順序說明。
Thumbnail
在 kotlin 程式語言中,定義資料類型,最後加上問號「?」,則表示此筆資料可為空,可以指定 null 值。
Thumbnail
在 kotlin 程式語言中,定義資料類型,最後加上問號「?」,則表示此筆資料可為空,可以指定 null 值。
Thumbnail
存取可為空的變數,方式二: 使用 「let」 標準函數 kotlin 提供 「let」標準函數,用來檢查當資料值為 null,就不會去執行 {} 大括號裡面的程式區塊,反之資料不為空,則會執行大括號裡面的程式區塊。
Thumbnail
存取可為空的變數,方式二: 使用 「let」 標準函數 kotlin 提供 「let」標準函數,用來檢查當資料值為 null,就不會去執行 {} 大括號裡面的程式區塊,反之資料不為空,則會執行大括號裡面的程式區塊。
Thumbnail
存取可為空的變數,方式四: 使用「!!」堅持資料不為空運算符號(不建議使用)。 不建議大家使用「!!」,此方式不管資料有沒有值都會去存取資料值。
Thumbnail
存取可為空的變數,方式四: 使用「!!」堅持資料不為空運算符號(不建議使用)。 不建議大家使用「!!」,此方式不管資料有沒有值都會去存取資料值。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News