美文网首页kotlin
63.高阶函数&lambda表达式

63.高阶函数&lambda表达式

作者: 写代码的向日葵 | 来源:发表于2019-10-05 16:41 被阅读0次

1.写法如下:

fun main(args: Array<String>) {
    val a = 10
    val b = 20

    var sum = add(a, b)
    var sub = sub(a, b)

    println(sum)
    println(sub)

    // 函数作为参数传递,函数引用
    sum = cacl(a, b, ::add)
    sub = cacl(a, b, ::sub)

    println(sum)
    println(sub)
}

//工具类,对两个数进行操作
fun cacl(a: Int, b: Int, block: (Int, Int) -> Int) = block.invoke(a, b)

//求两数之和
fun add(a: Int, b: Int) = a + b

//求两数之差
fun sub(a: Int, b: Int) = a - b
  • 两个冒号::获取函数的引用
  • 如果函数里面传递函数参数的话,就称为高阶函数

2.lambda

fun main(args: Array<String>) {
    val a = 10
    val b = 20

    val sum = cacl(a, b,{ m, n ->
        val result = m + n
        result
    })

    val sub = cacl(a, b) { m, n ->
        val result = m - n
        result
    }
    println(sum)
    println(sub)

}

fun cacl(a: Int, b: Int, block: (Int, Int) -> Int) = block.invoke(a, b)
  • 函数的参数定义出来之后 可以自动推断出类型 返回值不需要写 推断出当前的返回值类型
  • 匿名函数,lambda表达式
  • 如果最后一个参数是lambda表达式,可以把()前移

相关文章

网友评论

    本文标题:63.高阶函数&lambda表达式

    本文链接:https://www.haomeiwen.com/subject/fkrepctx.html