Kotlin 函式 (Functions)

函式是程式邏輯的積木。 在 Kotlin 中,使用 fun 關鍵字來定義函式。

基本語法

fun sum(a: Int, b: Int): Int {
    return a + b
}
  • 參數必須定義型別 (name: Type)。
  • 回傳型別寫在括號後面 (: ReturnType)。

單一表達式函式 (Single-expression functions)

如果你的函式只有一行 return,可以簡化成這樣:

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

甚至連回傳型別 Int 都可以省略(自動推斷)。

無回傳值 (Unit)

如果函式不回傳任何東西(類似 Java 的 void),其實它是回傳 Unit 物件。 Unit 可以省略不寫。

fun printHello(name: String): Unit {
    println("Hello $name")
}

// 等同於
fun printHello(name: String) {
    println("Hello $name")
}
}

可變參數 (varargs)

如果你不確定參數有幾個(例如 Arrays.asList()),可以使用 vararg

fun printAll(vararg messages: String) {
    for (m。in messages) println(m)
}

printAll("Hello", "World", "Kotlin")

中綴表示法 (Infix Notation)

讓程式碼讀起來像英文句子。條件:

  1. 必須是成員函式或擴充函式。
  2. 只有一個參數。
  3. 加上 infix 關鍵字。
infix fun Int.plus(x: Int): Int {
    return this + x
}

// 呼叫方式
val x = 1 plus 2  // 等同於 1.plus(2)

mapOf 使用的 to 其實就是一個 infix function (A to B)。