Kotlin 函数
函数是代码的基本构建块,它允许你将一段代码封装起来,并赋予其一个名称,以便在需要的时候重复使用。函数可以接收输入值(参数),并返回一个输出值(返回值)。
1. 函数声明
在 Kotlin 中,使用 fun
关键字声明函数,后跟函数名、括号内的参数列表(可选)以及返回值类型(可选)。
fun greet(): String {
return "Hello, luoshuo.net!"
}
fun
: 声明函数的关键字。greet
: 函数名,遵循驼峰命名法。()
: 包含参数列表的括号,此处为空,表示该函数不接收任何参数。: String
: 函数返回值的类型。{}
: 函数体,包含要执行的代码。
2. 参数
2.1 参数类型
函数可以接受零个或多个参数。每个参数都有一个名称和一个类型,用冒号分隔。
fun greet(name: String): String {
return "Hello, $name!"
}
2.2 默认参数
你可以为参数指定默认值,以便在调用函数时省略该参数。
fun greet(name: String = "World"): String {
return "Hello, $name!"
}
// 调用函数,使用默认参数
greet() // 输出:Hello, World!
2.3 具名参数
在 Kotlin 中,具名参数
(Named Arguments)允许你在调用函数时明确地为每个参数提供名字,这可以提高代码的可读性,尤其是在函数有多个参数时。使用具名参数,你可以不必按照函数定义中的参数顺序来传递参数,这样可以使代码更加清晰和易于理解。
fun greet(greeting: String = "Hello", name: String = "World"): String {
return "$greeting, $name!"
}
// 使用具名参数
greet(name = "Kotlin", greeting = "Hi") // 输出:Hi, Kotlin!
2.4 可变参数
如果一个函数可以接受任意数量的相同类型的参数,可以使用 vararg
关键字声明一个可变参数。
fun sum(vararg numbers: Int): Int {
var result = 0
for (number in numbers) {
result += number
}
return result
}
// 调用函数,传入不同数量的参数
sum(1, 2, 3) // 输出:6
sum(10, 20) // 输出:30
3. 返回值
3.1 返回值类型
函数可以返回一个值,返回值的类型在函数声明中使用冒号指定。
fun sum(a: Int, b: Int): Int {
return a + b
}
3.2 Unit 返回类型
如果函数中没有显式地使用 return
语句来返回一个值,或者函数体中的最后一条语句不是一个表达式,那么该函数会默认返回一个特殊的类型叫做 Unit
。在 Kotlin 中,Unit
类似于 Java 中的 void
类型,表示该函数不返回任何有用的值。
fun printHello() {
println("Hello, World!")
// 这里没有显式的 return 语句,所以函数返回类型是 Unit
}
3.3 省略返回值类型
如果函数体是一个表达式,则可以省略返回值类型,编译器会自动推断返回值类型。
fun sum(a: Int, b: Int) = a + b
4. 单表达式函数
如果函数体只有一个表达式,则可以使用 =
符号简化函数定义。
fun sum(a: Int, b: Int) = a + b
5. 函数重载
Kotlin 支持函数重载,这意味着你可以定义多个具有相同名称但参数列表不同的函数。编译器会根据调用函数时传递的参数类型和数量来确定调用哪个函数。
fun greet(name: String) {
println("Hello, $name!")
}
fun greet(name: String, age: Int) {
println("Hello, $name! You are $age years old.")
}
// 调用不同的重载函数
greet("Alice")
greet("Bob", 30)