1、具名函数:有名字的函数
1.1 定义
fun namedFun(a: Int, b: Int): String {
return "The sum of $a and $b is ${a + b}"
}
1.2 使用
fun main(){
val res = namedFun(1, 2)
}
2、匿名函数:没有名字的函数
2.1 定义
//匿名函数两种写法
//1. 带:方式, 需指定返回类型
val anonymousFun1: (Int, Int) -> String = { a, b ->
"The sum of $a and $b is ${a + b}"
//匿名函数不要写return,最后一行就是返回值
}
//2.不带:方式, 自动推断返回类型
val anonymousFun2 = { a: Int, b: Int ->
"The sum of $a and $b is ${a + b}"
}
2.2 使用
fun main(){
val res1 = anonymousFun1.invoke(1, 2)
val res2 = anonymousFun2.invoke(1, 2)
}
3、利用Function函数式接口定义函数
3.1 定义
//Function0表示0个形参的函数
//Function1表示1个形参的函数
//Function2表示2个形参的函数
//...
//FunctionN表示n个形参的函数
//Function2表示2个形参的函数, 返回值为String
val f21: Function2<Int, Int, String> = { a, b ->
"The sum of $a and $b is ${a + b}"
}
//Function2表示2个形参的函数, 没有返回值
val f20: Function2<Int, Int, Unit> = { a, b->
val res = "The sum of $a and $b is ${a + b}"
println(res)
}
使用
fun main(){
val res = f21.invoke(1, 2)
f20.invoke(1, 2)
}