参数与返回值
1. 函数参数的定义与使用
在 Kotlin 中,函数的参数定义在函数名后的括号内,格式为 参数名: 类型。多个参数用逗号分隔。
fun greet(name: String, age: Int) {
println("Hello, $name! You are $age years old.")
}
调用时需按顺序传入对应类型的参数:
greet("Alice", 25) // 输出: Hello, Alice! You are 25 years old.
2. 返回值类型声明
Kotlin 函数的返回值类型在参数列表后声明,格式为 : 返回类型。若无返回值(类似 Java 的 void),可省略或显式声明为 Unit。
fun add(a: Int, b: Int): Int {
return a + b
}
fun printMessage(message: String): Unit { // Unit 可省略
println(message)
}
3. 单表达式函数的简写
当函数体只有单个表达式时,可用 = 直接返回结果,并省略返回类型(编译器自动推断):
fun multiply(x: Int, y: Int) = x * y // 返回类型自动推断为 Int
4. 返回 Nothing 类型
对于永远不会正常返回的函数(如抛出异常),可声明返回类型为 Nothing:
fun fail(message: String): Nothing {
throw IllegalArgumentException(message)
}
5. 参数默认值与命名参数
Kotlin 支持为参数指定默认值,调用时可选择性传参。结合命名参数,可提高代码可读性:
fun createUser(
name: String,
age: Int = 18, // 默认值
isAdmin: Boolean = false
) { /* ... */ }
// 调用示例
createUser("Bob", isAdmin = true) // 跳过 age 参数
6. 可变参数(Varargs)
使用 vararg 关键字定义可变数量参数,类似 Java 的 ...:
fun printAll(vararg messages: String) {
for (msg in messages) println(msg)
}
// 调用示例
printAll("Hello", "Kotlin", "World")
7. 返回值的高级特性
返回函数(高阶函数)
Kotlin 允许函数返回另一个函数:
fun getOperation(type: String): (Int, Int) -> Int {
return when (type) {
"add" -> { a, b -> a + b }
else -> { a, b -> a * b }
}
}
val operation = getOperation("add")
println(operation(2, 3)) // 输出 5
返回 Pair 或 Triple
多值返回可通过数据类或标准库的 Pair/Triple 实现:
fun getCoordinates(): Pair<Double, Double> {
return Pair(52.52, 13.41) // 柏林经纬度
}
关键点总结
| 特性 | 示例代码 |
|---|---|
| 基本参数与返回值 | fun sum(a: Int, b: Int): Int |
| 单表达式函数 | fun max(a: Int, b: Int) = if (a > b) a else b |
| 默认参数与命名参数 | fun connect(timeout: Int = 5000) |
| 可变参数 | fun log(vararg entries: String) |
| 返回函数 | fun createCounter(): () -> Int |
