Kotlin入門-Day7:函數

閱讀時間約 5 分鐘

函數的基本結構

在 Kotlin 中,函數是一等公民,可以像變數一樣使用。Kotlin 支持多種方式來定義和使用函數,包括函數聲明、函數表達式和匿名函數。

函數聲明

函數聲明的基本語法如下:

fun functionName(parameter1: Type1, parameter2: Type2): ReturnType {
// 函數體
return result
}

範例:

fun add(a: Int, b: Int): Int {
return a + b
}

函數表達式

Kotlin 支持使用表達式來定義函數,這樣可以簡化函數的定義。

fun add(a: Int, b: Int): Int = a + b

匿名函數

匿名函數可以用來定義沒有名稱的函數,通常用於高階函數中。

val sum = fun(a: Int, b: Int): Int {
return a + b
}

// 簡化版本
val sum = { a: Int, b: Int -> a + b }

函數的呼叫

函數呼叫的方式非常簡單,直接使用函數名稱並傳遞參數即可。

val result = add(3, 4)  // result 為 7

函數的參數

單個參數

fun greet(name: String) {
println("Hello, $name!")
}

greet("John") // 輸出: Hello, John!

多個參數

fun add(a: Int, b: Int, c: Int): Int {
return a + b + c
}

val result = add(1, 2, 3) // result 為 6

預設參數值

可以為函數參數設置預設值,這樣在呼叫函數時可以省略對應的參數。

fun greet(name: String, greeting: String = "Hello") {
println("$greeting, $name!")
}

greet("John") // 輸出: Hello, John!
greet("John", "Hi") // 輸出: Hi, John!

剩餘參數

使用 vararg 關鍵字可以定義可變長度參數。

fun sum(vararg numbers: Int): Int {
var total = 0
for (number in numbers) {
total += number
}
return total
}

val result = sum(1, 2, 3, 4, 5) // result 為 15

函數的返回值

單個返回值

fun square(x: Int): Int {
return x * x
}

val result = square(5) // result 為 25

多個返回值

可以使用 PairTriple 來返回多個值。

fun getFullName(): Pair<String, String> {
return Pair("John", "Doe")
}

val (firstName, lastName) = getFullName()
println("First Name: $firstName, Last Name: $lastName") // 輸出: First Name: John, Last Name: Doe

返回物件

可以返回一個自訂的物件。

class Person(val name: String, val age: Int)

fun createPerson(name: String, age: Int): Person {
return Person(name, age)
}

val person = createPerson("Alice", 30)
println("Name: ${person.name}, Age: ${person.age}") // 輸出: Name: Alice, Age: 30

返回函數

函數可以返回另一個函數,這是高階函數的一個例子。

fun operation(): (Int, Int) -> Int {
return ::add
}

val addFunction = operation()
val result = addFunction(3, 4) // result 為 7

這些是 Kotlin 中函數的基本用法和概念。通過熟練掌握這些知識,你可以更靈活地定義和使用函數來解決各種問題。如果有任何問題,隨時可以詢問。

13會員
111Content count
日後將分享關於我的經驗(日常、工作、技術),並期待未來能創造屬於我的宇宙。
留言0
查看全部
發表第一個留言支持創作者!
Michael楊 的其他內容
本章節帶領讀者了解 Kotlin 的流程控制語法,包括條件判斷、當做三元運算子使用的 if 表達式、用來替代 switch 語句的 when 語句、用於迴圈運作的 for 和 while 語句,以及控制迴圈執行流程的語句和標籤概念。該章節目的在於讓讀者深入掌握流程控制功能,進一步提升編程技巧。
此文件的目的是教授 Kotlin 程式語言的運算符,包括算數運算子、比較運算子、賦值運算子、位元運算子以及運算子的優先等級。這將有助於讀者更好地理解和撰寫 Kotlin 程式碼。
本章節的目的是介紹 Kotlin 的各種資料型別。包括內建型別如基本數值型別、字串型別和布林型別等,以及如何進行型別轉換。此外,也介紹了如何定義自訂型別(類)和元組型別,以及 Kotlin 提供的集合型別,例如列表(List)、集合(Set)和映射(Map)以及陣列(Array)。
本章節提供了設置Kotlin開發環境的多種選擇,包括使用IntelliJ IDEA、Android Studio、命令行工具、Visual Studio Code,以及在線編輯器。每種方法都有詳細的步驟說明,旨在幫助讀者根據自己的需求選擇最適合的設置方式,並順利開始Kotlin開發。
本文總結和介紹了Kotlin的基本語法、註解和變數的使用,透過實例進行講解,以幫助讀者更好地理解和快速上手Kotlin語言。
這個章節的目的是為了介紹Kotlin這種程式語言,包含它的特性、應用領域、使用者,以及相關的學習資源和工具。透過這篇文章,讀者可以了解到Kotlin的基礎知識,並開始學習和使用它。
本章節帶領讀者了解 Kotlin 的流程控制語法,包括條件判斷、當做三元運算子使用的 if 表達式、用來替代 switch 語句的 when 語句、用於迴圈運作的 for 和 while 語句,以及控制迴圈執行流程的語句和標籤概念。該章節目的在於讓讀者深入掌握流程控制功能,進一步提升編程技巧。
此文件的目的是教授 Kotlin 程式語言的運算符,包括算數運算子、比較運算子、賦值運算子、位元運算子以及運算子的優先等級。這將有助於讀者更好地理解和撰寫 Kotlin 程式碼。
本章節的目的是介紹 Kotlin 的各種資料型別。包括內建型別如基本數值型別、字串型別和布林型別等,以及如何進行型別轉換。此外,也介紹了如何定義自訂型別(類)和元組型別,以及 Kotlin 提供的集合型別,例如列表(List)、集合(Set)和映射(Map)以及陣列(Array)。
本章節提供了設置Kotlin開發環境的多種選擇,包括使用IntelliJ IDEA、Android Studio、命令行工具、Visual Studio Code,以及在線編輯器。每種方法都有詳細的步驟說明,旨在幫助讀者根據自己的需求選擇最適合的設置方式,並順利開始Kotlin開發。
本文總結和介紹了Kotlin的基本語法、註解和變數的使用,透過實例進行講解,以幫助讀者更好地理解和快速上手Kotlin語言。
這個章節的目的是為了介紹Kotlin這種程式語言,包含它的特性、應用領域、使用者,以及相關的學習資源和工具。透過這篇文章,讀者可以了解到Kotlin的基礎知識,並開始學習和使用它。
你可能也想看
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
本文介紹 Kotlin 中的延遲初始化(lateinit)和懶加載(lazy)的使用方法,以及它們之間的差異。這些關鍵字能夠提升程式效能並簡化程式碼撰寫。
Thumbnail
在 Kotlin 程式語言中,屬性訪問 (Property Access ) 提供了一種簡潔的方式來存取 Java 類別中的公開屬性欄位,可以省去 getter 與 setter 呼叫方法。
Thumbnail
在 Kotlin 語言裡,資料型別映射指的是 Java 到 Kotlin 的資料型別轉換。例如,在 Java 裡,整數型別用「int」表示,而在 Kotlin 裡,這對應的型別是「Int」。當你在 Kotlin 存取 Java 類別的整數型別欄位值時,這些值會自動轉換成 Kotlin 對應的型別。
Thumbnail
空值例外是開發中一個常見的風險,特別是在 Kotlin 和 Java 這樣的跨平台開發中更容易出現。藉由合理地運用 Kotlin 的空值安全機制以及對 Java 程式碼的註解,可以有效地降低程式錯誤的風險,提高程式碼的可靠性和穩定性。
Thumbnail
在 IntelliJ IDEA 建立 Kotlin 專案時,要執行 Java 程式只需將其檔案命名為 .java,並放置在專案的 java 目錄中。這樣就可以順利執行該 Java 程式。
Thumbnail
@Throws 是 Kotlin 中用來標記函數可能會拋出(throw)特定類型異常的註解。當你使用這個註解標記一個函數時,表示這個函數可能會丟出指定的異常類型。這有助於告訴其他開發者,在使用你的函式時要特別注意處理這類異常情況。 例如,我們常在讀取檔案或是解析 API 特定 Json 欄位資料,若
Thumbnail
Kotlin 的函式可以作為參數使用,它們被歸類為一種資料型別,稱為「Function Types」。當 Java 呼叫這種型別的 Kotlin 函式時,會使用 invoke 關鍵字進行呼叫。通過反編譯程式碼,可以得知 Kotlin 中的 Function Types 資訊。
Thumbnail
當你在 Kotlin 程式語言中定義一個有預設參數的函數功能,並給它預設值,@JvmOverloads 可以自動產生多個重載版本的 Java 方法,每個版本都省略了部分參數,讓 Java 代碼可以更簡潔地呼叫這些方法,而不需要填寫所有參數。不會因為沒有預設值,而顯示錯誤。
Thumbnail
Companion Object 是 Kotlin 中一個特殊的物件,用來在類別內部創建靜態成員。當你在一個類別內部建立 companion object 時,裡面的成員就可以像 Java 中的靜態成員一樣被使用,不需要通過該類別的實例來訪問。 結合使用 @JvmStatic 和 Companion
Thumbnail
當你在 Kotlin 中使用 val 或 var 定義一個屬性時,在 Java 中預設會轉換為 getter 和 setter 方法。如果你希望直接在 Java 中存取這個屬性,可以使用 @JvmField 註解。這會讓 Kotlin 編譯器將屬性生成為公開的,而非生成 getter 和 sette
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
本文介紹 Kotlin 中的延遲初始化(lateinit)和懶加載(lazy)的使用方法,以及它們之間的差異。這些關鍵字能夠提升程式效能並簡化程式碼撰寫。
Thumbnail
在 Kotlin 程式語言中,屬性訪問 (Property Access ) 提供了一種簡潔的方式來存取 Java 類別中的公開屬性欄位,可以省去 getter 與 setter 呼叫方法。
Thumbnail
在 Kotlin 語言裡,資料型別映射指的是 Java 到 Kotlin 的資料型別轉換。例如,在 Java 裡,整數型別用「int」表示,而在 Kotlin 裡,這對應的型別是「Int」。當你在 Kotlin 存取 Java 類別的整數型別欄位值時,這些值會自動轉換成 Kotlin 對應的型別。
Thumbnail
空值例外是開發中一個常見的風險,特別是在 Kotlin 和 Java 這樣的跨平台開發中更容易出現。藉由合理地運用 Kotlin 的空值安全機制以及對 Java 程式碼的註解,可以有效地降低程式錯誤的風險,提高程式碼的可靠性和穩定性。
Thumbnail
在 IntelliJ IDEA 建立 Kotlin 專案時,要執行 Java 程式只需將其檔案命名為 .java,並放置在專案的 java 目錄中。這樣就可以順利執行該 Java 程式。
Thumbnail
@Throws 是 Kotlin 中用來標記函數可能會拋出(throw)特定類型異常的註解。當你使用這個註解標記一個函數時,表示這個函數可能會丟出指定的異常類型。這有助於告訴其他開發者,在使用你的函式時要特別注意處理這類異常情況。 例如,我們常在讀取檔案或是解析 API 特定 Json 欄位資料,若
Thumbnail
Kotlin 的函式可以作為參數使用,它們被歸類為一種資料型別,稱為「Function Types」。當 Java 呼叫這種型別的 Kotlin 函式時,會使用 invoke 關鍵字進行呼叫。通過反編譯程式碼,可以得知 Kotlin 中的 Function Types 資訊。
Thumbnail
當你在 Kotlin 程式語言中定義一個有預設參數的函數功能,並給它預設值,@JvmOverloads 可以自動產生多個重載版本的 Java 方法,每個版本都省略了部分參數,讓 Java 代碼可以更簡潔地呼叫這些方法,而不需要填寫所有參數。不會因為沒有預設值,而顯示錯誤。
Thumbnail
Companion Object 是 Kotlin 中一個特殊的物件,用來在類別內部創建靜態成員。當你在一個類別內部建立 companion object 時,裡面的成員就可以像 Java 中的靜態成員一樣被使用,不需要通過該類別的實例來訪問。 結合使用 @JvmStatic 和 Companion
Thumbnail
當你在 Kotlin 中使用 val 或 var 定義一個屬性時,在 Java 中預設會轉換為 getter 和 setter 方法。如果你希望直接在 Java 中存取這個屬性,可以使用 @JvmField 註解。這會讓 Kotlin 編譯器將屬性生成為公開的,而非生成 getter 和 sette