kotlin中的匿名函数以及利用Function定义函数

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)
}

猜你喜欢

转载自blog.csdn.net/weixin_41733225/article/details/129998178