函数类型

作为一个接收函数作为参数的函数来说,我们必须指定参数对应的函数类型。比如上述的max函数被定义为如下形式:

fun <T> max(collection: Collection<T>, less: (T, T) -> Boolean): T? {
    var max: T? = null
    for (it in collection)
        if (max == null || less(max, it))
            max = it
    return max
}

参数less的类型是(T, T) -> Boolean,比如,函数接收两个类型为T的参数,并且返回一个boolean值。

在max函数的第四行,less被用作一个函数:其通过传递两个参数来进行调用。

函数类型按照上述的类型进行书写,或者可以有被命名的参数,如果你想表达参数的意义可以对参数进行命名。

val compare: (x: T, y: T) -> Int = ...

results matching ""

    No results matching ""