测试函数的一些用法:
Kotlin
fun main() {
val func1: (Int, Int) -> Int = ::getMax // ::引用一个函数
println("max(8, 9) = ${func1(8, 9)}")
val func2: (Int, Int) -> Int = fun(a: Int, b: Int): Int { // 赋值为一个匿名函数
return a + b
}
println("sum(8, 9) = ${func2(8, 9)}")
val func3: (Int, Int) -> Int = { a, b -> if(a < b) a else b } // Lambda表达式函数
println("min(8, 9) = ${func3(8, 9)}")
// 函数传参为Lambda表达式
invoke({name, zuoYouMing -> println("我是$name, 我的座右铭是$zuoYouMing")}, "司徒浩南", "铜锣湾只有一个浩南,就是我司徒浩南!")
}
fun getMax(a: Int, b: Int) = if (a > b) a else b
fun invoke(func: (String, String) -> Unit, str1: String, str2: String) {
func(str1, str2) // 直接调用参数的函数
}
打印:

ok. 函数用法很灵活。