【Kotlin 入門指南】匿名函數-Trailing lambda

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

匿名函數-Trailinglambda

在 Kotlin 中的 Trailing Lambda 表示可以在函數的最後一個參數位置傳遞 Lambda 表達式。當最後一個參數是函數(Lambda)時,我們可以將該函數放在函數調用的括號外面,增加程式碼的可讀性和簡潔性,範例如下:

fun showGreeting(name: String, msg: String, greeting: (String, String) -> String) {
println(greeting(name, msg))
}

fun main() {
//hello 按右鍵 Refactor->Inline property
// var hello = { name: String, msg: String ->
// "哈囉~ $name, $msg"
// }

//可以再簡化
// showGreeting("HKT", "今天過得好嗎?", { name: String, msg: String ->
// "哈囉~ $name, $msg"
// })

showGreeting("HKT", "今天過得好嗎?") { name: String, msg: String ->
"哈囉~ $name, $msg"
}
}

在這個範例中,showGreeting 函數接受三個參數,最後一個參數是一個函數型態 (String, String) -> String,用於產生問候語。這個函數會把傳入的 namemsg 組合成一個問候語,並輸出到控制台上。

main 函數中呼叫 showGreeting 時,可以省略最後一個參數的括號,直接在括號外傳遞 Lambda 表達式,以更簡潔地呈現程式碼。

我們使用了 Trailing Lambda 的寫法,將 showGreeting 函數的最後一個參數以 Lambda 表達式的形式放在函數調用的外部。這使得程式碼更加清晰易讀,同時保持了可讀性和簡潔性。

avatar-img
13會員
259內容數
哈囉!歡迎光臨我的沙龍!我是 KT,一位對應用程式開發充滿熱情的開發者。在這個專屬空間,我將與您分享我在應用開發領域的深入學習心得和豐富的實戰經驗。如果您對應用程式開發技術同樣充滿好奇,渴望不斷探索新知,歡迎成為我們的會員,一起在應用程式開發的旅途上,探索更深層次的技術世界,享受學習的樂趣。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~