当前位置:嗨网首页>书籍在线阅读

18-函数类型

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

11.4.2 函数类型

对于接收另一个函数作为参数的高阶函数,使用前必须为这个参数指定函数类型。代码如下。

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的参数并返回一个布尔值结果,如果第一个参数值小于第二个参数值,那么该函数返回true,否则返回false。

如果将函数类型声明为可空变量,则可以使用括号将整个函数类型括起来并在其后加上问号。代码如下。

var sum: ((Int, Int) -> Int)? = null