----《第一季Kotlin崛起:次世代Android开发 》学习笔记
总目录:每天学一点 Kotlin ---- 目录
上一篇:每天学一点 Kotlin -- 字符串和字符
下一篇:每天学一点 Kotlin -- 函数:作用范围
1. 函数的定义和使用
1.1 Kotlin 中定义函数用关键字: fun
1.2 Kotlin 中函数的返回值在声明时的写法和 Java 中是不同的,但是相同的是函数返回都用 return 这个关键字。例如下列代码返回一个 Double 类型的结果:
fun testDouble(a: Double, b: Double): Double{
return a + b
}
1.3 对于有返回值的函数,如果函数只有一条执行语句,那可以省略返回类型,花括号和 return 关键字,从而简化成单行表达式函数:
fun square(r: Double) = Math.PI * r * r
1.4 上面的情况我们制定了函数的返回值。默认情况下,return 会从最近的嵌套函数或匿名函数返回,所以如果在一个嵌套函数内 return 只会返回最内层的函数。这也是和 Java 的又一个区别:即函数可以嵌套。举个栗子:
fun main(args: Array<String>) {
println("result = " + maxNum(3, 2, 9))
}
fun maxNum(a: Int, b: Int, c: Int): Int {
fun maxNum(a: Int, b: Int): Int {
if (a >= b) {
return a
}
return b
}
return maxNum(maxNum(a, b), maxNum(b, c))
}
打印结果:
result = 9
2. 可变参数
2.1 可变参数数量的函数:只需要一个参数,在参数前加一个 vararg 修饰符就可以。举个栗子:
fun main(args: Array<String>) {
println("sum: " + sum(1, 2, 3, 4))
println("sum: " + sum(1, 2, 3, 4, 5))
println("sum: " + sum(1, 2, 3, 4, 5, 6))
}
fun sum(vararg x: Int): Int {
var total = 0
for (i in x) {
total += i
}
return total
}
打印结果:
sum: 10
sum: 15
sum: 21
分析:被 vararg 关键字修饰的参数就跟 Java 中数组一样了
2.2 在上面的情况中,一旦定义成了可变参数,调用时可以给一个对应类型的数组,数组名前加一个星号(*)。例如上面的调用可以写成:
fun main(args: Array<String>) {
val a = intArrayOf(1, 2, 3, 4, 5, 10)
println(sum(*a))
}