每天学一点 Kotlin -- 函数:初次见面

----《第一季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))
}
相关代码:https://gitee.com/fzq.com/test-demo
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容