以下是 Kotlin 函數的基本概念。
1. 函數的基本語法#
在 Kotlin 中,函數使用 fun 關鍵字定義。
1
2
3
4
| fun 函數名稱(參數名稱: 資料型別): 返回型別 {
// 函數內容
return 返回值
}
|
2. 無參數函數#
當函數不需要參數時,可以省略參數部分。
1
2
3
4
5
6
7
| fun sayHello() {
println("Hello, Kotlin!")
}
fun main() {
sayHello() // 輸出:Hello, Kotlin!
}
|
3. 帶參數的函數#
函數可以接受參數,並根據傳入的值進行處理。
1
2
3
4
5
6
7
| fun greet(name: String) {
println("Hello, $name!")
}
fun main() {
greet("Alice") // 輸出:Hello, Alice!
}
|
4. 帶返回值的函數#
函數可以返回計算結果,需使用 return 關鍵字。
1
2
3
4
5
6
7
8
| fun add(a: Int, b: Int): Int {
return a + b
}
fun main() {
val result = add(3, 5)
println("結果是 $result") // 輸出:結果是 8
}
|
5. 單行函數#
如果函數只有一行,可以簡化為單行函數,使用 =。
1
2
3
4
5
| fun multiply(a: Int, b: Int): Int = a * b
fun main() {
println(multiply(4, 5)) // 輸出:20
}
|
6. 預設參數#
函數參數可以設置預設值,當呼叫函數時未提供對應值,會使用預設值。
1
2
3
4
5
6
7
8
| fun greet(name: String = "Guest") {
println("Hello, $name!")
}
fun main() {
greet() // 輸出:Hello, Guest!
greet("Alice") // 輸出:Hello, Alice!
}
|
7. 命名參數#
在呼叫函數時,可以指定參數名稱來傳遞值,適合參數較多的函數。
1
2
3
4
5
6
7
| fun printInfo(name: String, age: Int) {
println("Name: $name, Age: $age")
}
fun main() {
printInfo(age = 25, name = "Alice") // 輸出:Name: Alice, Age: 25
}
|
8. 函數無返回值#
如果函數沒有返回值,返回型別是 Unit,可以省略。
1
2
3
4
5
6
7
8
| fun printMessage(message: String): Unit {
println(message)
}
// 等同於
fun printMessage(message: String) {
println(message)
}
|
9. 可變參數(vararg)#
使用 vararg 關鍵字讓函數接受不定數量的參數,這些參數會被當作陣列處理。
1
2
3
4
5
6
7
8
9
10
11
12
13
| fun printAll(vararg messages: String) {
for (message in messages) {
println(message)
}
}
fun main() {
printAll("Hello", "World", "Kotlin")
// 輸出:
// Hello
// World
// Kotlin
}
|
10. 展開運算符(Spread Operator)#
展開運算符(*)用於將陣列展開為單一元素傳入 vararg 函數。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| fun printNumbers(vararg numbers: Int) {
for (number in numbers) {
println(number)
}
}
fun main() {
val nums = intArrayOf(1, 2, 3, 4, 5)
printNumbers(*nums)
// 輸出:
// 1
// 2
// 3
// 4
// 5
}
|
11. 擴展函數#
Kotlin 支援擴展函數,用來為現有型別新增函數。
1
2
3
4
5
6
7
8
| fun String.addExclamation(): String {
return this + "!"
}
fun main() {
val message = "Hello"
println(message.addExclamation()) // 輸出:Hello!
}
|
Reference#
https://kotlinlang.org/docs/functions.html