【Kotlin 入門指南】區域函數比較表

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

區域函數比較表

Kotlin 標準函式庫中有五個函數,它們的目的是在一個物件的範圍內執行一段程式碼。這些函數分別是 let, run, with, apply, 和 also。它們的差別在於物件在程式碼中的可用方式和整個表達式的回傳值。

區域函數比較表

區域函數比較表

資料來源:Kotlon Doc Scope functions - Function selection

  1. let: let 函數允許你在一個物件上執行區塊程式碼,同時將該物件作為參數傳遞進去。它的優勢在於引入了安全的空值處理。當物件不為空時,才會執行 let 區塊內的程式碼,否則會跳過。這樣可以避免針對空物件執行操作而導致的錯誤。此外,let 函數可以輕鬆地進行資源的釋放和鏈式調用,使得程式碼更加清晰和具有彈性。
  2. run: run 函數與 let 有些相似,但其主要特性在於在執行區塊程式碼時,它會將該物件作為接收者 (receiver)。這意味著你可以在執行區塊內直接訪問物件的屬性和方法,而無需額外指定。run 的回傳值為執行區塊程式碼的最後一行,這使得在建立物件並立即初始化其屬性時特別有用。
  3. with: 與 let 和 run 不同,with 函數並不是擴展函數。它接收一個物件和一個區塊程式碼作為參數。在這個區塊內,你可以直接訪問傳遞進去的物件的屬性和方法,而不需要額外指定。不同於 run,with 函數的回傳值是區塊程式碼的最後一行。
  4. apply: apply 函數的特點在於它返回該物件本身,而不是區塊程式碼的結果。這使得 apply 特別適合在物件初始化時進行屬性的設置。例如,在建立一個物件後立即設定其屬性,並在一個區塊內直接指定屬性值。
  5. also: 和 let 很相似,但 also 函數的返回值總是該物件本身,而不是區塊程式碼的結果。這使得 also 特別適合在執行區塊程式碼的同時,進行一些額外的操作,同時保留了原始物件。

Kotlin 的 let、run、with、apply 和 also 這五個函數在物件範圍內執行程式碼時提供了極大的靈活性和便利性。它們的微妙差異在於物件在程式碼中的可用方式和整個表達式的回傳值。透過了解這些差異,你可以更有效地利用這些函數,使得你的程式碼更加清晰、靈活和易於維護。

根據區域函數比較表,可以根據需求選擇出正確的區域函數:

raw-image
avatar-img
10會員
232內容數
哈囉!歡迎光臨我的沙龍!我是 KT,一位對應用程式開發充滿熱情的開發者。在這個專屬空間,我將與您分享我在應用開發領域的深入學習心得和豐富的實戰經驗。如果您對應用程式開發技術同樣充滿好奇,渴望不斷探索新知,歡迎成為我們的會員,一起在應用程式開發的旅途上,探索更深層次的技術世界,享受學習的樂趣。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液