在 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
可以使用 Pair
或 Triple
來返回多個值。
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 中函數的基本用法和概念。通過熟練掌握這些知識,你可以更靈活地定義和使用函數來解決各種問題。如果有任何問題,隨時可以詢問。