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)