【Kotlin 入門指南】takeIf/takeUnless

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

takeIf/takeUnless

takeIftakeUnless 函數在 Kotlin 程式語言中,提供了一種更具彈性和簡潔的方式來處理條件性邏輯。它們讓程式碼更易讀、更容易維護,同時減少了不必要的重複代碼。藉由善用這兩個函數,你能夠提升自己的程式撰寫效率,寫出更具可讀性且高效的 Kotlin 程式碼。

takeIf

條件符合返回值,不符合則返回null。

//條件符合返回物件
val x = 66.takeIf { it == 66 } //66

//條件不符合則返回null
val y = 66.takeIf { it == 5 } //null

takeIf 這個函數的功能在於根據條件來選擇性地返回值。它接收一個條件式作為參數,如果條件成立,則返回原始值,否則返回 null。這樣的設計允許你以更簡潔的方式進行條件性的值處理,讓程式碼更為精簡易讀。

在這個範例程式碼中,takeIf 函數被使用來檢查特定條件。當我們將 66 作為呼叫者時,並利用大括號 {} 內的表達式來檢查數值是否符合條件。如果條件符合,則 takeIf 函數將返回原始數值;反之,如果條件不符合,則會返回 null

在這個例子中,x 被賦予了 66,因為 66 符合條件 it == 66,而 y 則被賦予了 null,因為 66 並不等於 5,所以條件不符合。

這個函數在處理條件檢查時非常有用,尤其是當你想要根據特定條件來取得數值或者檢查數值是否符合預期條件時。

takeUnless

條件符合返回 null,不符合返回物件

//條件符合返回 null
val x = 10.takeUnless { it == 10 } //null

//條件不符合返回物件
val y = 10.takeUnless { it == 5 } //10

takeUnless 這個函數與 takeIf 相反,它在條件不成立時返回原始值,否則返回 null。這在某些情況下能夠使得程式碼更直觀,特別是在需要排除特定條件的情況下。

在這個範例程式碼中,我們有兩個變數 xy,它們分別呼叫了 takeUnless 函數並傳入不同的條件。讓我們來看看這兩行程式碼的執行結果:

  1. val x = 10.takeUnless { it == 10 }: 這行程式碼的意思是若 it(這裡指的是 10)等於 10,則返回 null;然而,實際上 it 的值就是 10,因此條件符合,x 最終被賦值為 null
  2. val y = 10.takeUnless { it == 5 }: 在這行程式碼中,條件是若 it 不等於 5,則返回原始物件。因為 it 的值是 10,不等於 5,所以條件不符合,最終 y 被賦值為原始的物件值,也就是 10。
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😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液