kotlin: 函数的参数/返回值类型推断
一,代码:
//处理按钮点击事件
binding.button5.setOnClickListener {
//声明参数和返回类型
val helloFun1: (String, Int)->String = { name, age ->
"Hello World, $name, $age"
}
println(helloFun1("李大国", 18))
//推断出返回值类型是String,不再声明返回类型
val helloFun2 = { name: String, age: Int ->
"Hello World, $name, $age"
}
println(helloFun2("谢永强", 23))
val helloFun3 = fun(name: String, age: Int) = "Hello World, $name, $age"
println(helloFun3("王木生", 33))
val helloFun4 = fun(name: String, age: Int) = {"Hello World, $name, $age"}
println(helloFun4("王大拿", 43)) //返回结果是一个函数,需要用invoke()
println(helloFun4("王大拿", 43).invoke())
}
注意3和4的区别:
val helloFun3: (String, Int) -> String helloFun3是一个函数,返回类型是String
val helloFun4: (String, Int) -> () -> String helloFun4也是函数,但返回类型是() -> String,就一个lambda表达式,
所以象3、4这种写法时,要注意加不加{},有{}是返回的是表达式
二,运行结果:

浙公网安备 33010602011771号