kotlin函数式表达式:
单表达式函数:
当函数返回单个表达式时,可以省略花括号并且在 = 符号之后指定代码体即可
fun double(x: Int): Int = x * 2
当返回值类型可由编译器推断时,显式声明返回类型是可选的
fun double(x: Int) = x * 2
Lambda 表达式语法:
Lambda 表达式的完整语法形式,即函数类型的字面值如下:
val sum = { x: Int, y: Int -> x + y }
lambda 表达式总是被大括号括着,
完整语法形式的参数声明放在括号内,并有可选的类型标注,
函数体跟在一个 ->
符号之后。如果推断出的该 lambda 的返回类型不是 Unit
,那么该 lambda 主体中的最后一个(或可能是单个)表达式会视为返回值。
如果我们把所有可选标注都留下,看起来如下:
val sum: (Int, Int) -> Int = { x, y -> x + y }
简单代码:
fun main(args: Array<String>) {
var result=add(3,5)
println(result)
var i={x:Int,y:Int -> x+y}
var result2 = i(3,5)
println(result2)
var j:(Int,Int) ->Int={x,y-> x+y}
var result3 = j(3,5)
println(result3)
}
fun add(x:Int,y:Int):Int=x+y
运行结果:
8
8
8