kotlin 继续深入学习

2017-10-24  本文已影响0人  buchuqi2677
高阶函数
所谓的高阶函数,是一种特殊的函数, 它接受函数作为参数, 或者返回一个函数.

fun test(a: Int, b: Int, sumSom: (Int, Int, Int) -> Int): Int {
    if (a > b) {
        return sumSom(0, a, 0)
    } else {
        return sumSom(0, b, 0)
    }
}

tailrec fun sumSom(start: Int, end: Int, result: Int): Int {
    var res = result
    var sta = start

    while (sta <= end) {
        res += sta
        sta++
    }

    return res
}

// 测试类
fun main(args: Array<String>) {
    println(test(10, 9, ::sumSom)) // Log:55
}
命名参数
比如:
fun reformat(str: String,
             normalizeCase: Boolean = true,
             upperCaseFirstLetter: Boolean = true,
             divideByCamelHumps: Boolean = false,
             wordSeparator: Char = ' ') {
……
}

我们可以使用默认参数来调用它:(不用穿所有的参数)
reformat(str)

再也不用像java一样一个函数命名,多个不用的函数构造了,一个搞定

可变数量的参数(Varargs)
fun <T> asList(vararg ts: T): List<T> {
    val result = ArrayList<T>()
    for (t in ts) // ts is an Array
        result.add(t)
    return result
}

对比java的

private static int sumUp( int... values) { 

} 


上一篇 下一篇

猜你喜欢

热点阅读