功能采取其他功能
如“Lambda 函数”中所示,函数可以将其他函数作为参数。你需要声明具有其他功能的函数的函数类型如下:
# Takes no parameters and returns anything
() -> Any?
# Takes a string and an integer and returns ReturnType
(arg1: String, arg2: Int) -> ReturnType
例如,你可以使用最模糊的类型 () -> Any?
来声明一个执行 lambda 函数两次的函数:
fun twice(x: () -> Any?) {
x(); x();
}
fun main() {
twice {
println("Foo")
} # => Foo
# => Foo
}