函數
以下是 Kotlin 函數的基本概念。
1. 函數的基本語法
在 Kotlin 中,函數使用 fun
關鍵字定義。
fun 函數名稱(參數名稱: 資料型別): 返回型別 {
// 函數內容
return 返回值
}
2. 無參數函數
當函數不需要參數時,可以省略參數部分。
範例
fun sayHello() {
println("Hello, Kotlin!")
}
fun main() {
sayHello() // 輸出:Hello, Kotlin!
}
3. 帶參數的函數
函數可以接受參數,並根據傳入的值進行處理。
範例
fun greet(name: String) {
println("Hello, $name!")
}
fun main() {
greet("Alice") // 輸出:Hello, Alice!
}
4. 帶返回值的函數
函數可以返回計算結果,需使用 return
關鍵字。
範例
fun add(a: Int, b: Int): Int {
return a + b
}
fun main() {
val result = add(3, 5)
println("結果是 $result") // 輸出:結果是 8
}
5. 單行函數
如果函數只有一行,可以簡化為單行函數,使用 =
。
範例
fun multiply(a: Int, b: Int): Int = a * b
fun main() {
println(multiply(4, 5)) // 輸出:20
}
6. 預設參數
函數參數可以設置預設值,當呼叫函數時未提供對應值,會使用預設值。
範例
fun greet(name: String = "Guest") {
println("Hello, $name!")
}
fun main() {
greet() // 輸出:Hello, Guest!
greet("Alice") // 輸出:Hello, Alice!
}
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
,可以省略。
範例
fun printMessage(message: String): Unit {
println(message)
}
// 等同於
fun printMessage(message: String) {
println(message)
}
9. 可變參數(vararg
)
使用 vararg
關鍵字讓函數接受不定數量的參數,這些參數會被當作數組處理。
範例
fun printAll(vararg messages: String) {
for (message in messages) {
println(message)
}
}
fun main() {
printAll("Hello", "World", "Kotlin")
// 輸出:
// Hello
// World
// Kotlin
}
10. 展開運算符(Spread Operator)
展開運算符(*
)用於將數組展開為單個元素傳入 vararg
函數。
範例
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 支援擴展函數,用來為現有類型新增函數。
範例
fun String.addExclamation(): String {
return this + "!"
}
fun main() {
val message = "Hello"
println(message.addExclamation()) // 輸出:Hello!
}