kotlin

63.高阶函数&lambda表达式

2019-10-05  本文已影响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)
上一篇 下一篇

猜你喜欢

热点阅读