功能採取其他功能
如“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
}