ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

《第一行代码:Android》第三版6.5高阶函数详解

2026/9/18 8:23:51 拓冰建站 浏览量
《第一行代码:Android》第三版6.5高阶函数详解

本文主要是讲高级函数,首先来看看什么是高阶函数?(HighOrderFunction)

高阶函数定义

定义:如果一个函数接收另一个函数作为参数,或者返回值的类型是另一个函数,那么该函数就称为高阶函数。

编程的数据类型有int ,布尔类型等,Kotlin中增加了一个函数类型的概念。如何声明一个函数类型?(String,Int)->Unit  这么写的意思就是:这是一个函数,接收String 和Int作为输入参数,返回值是Unit,Unit 相当于Java中的void。

高阶函数允许让函数类型的参数来决定函数的执行逻辑。

书中例子代码

例子是纯kotlin代码,可以在play中实现。实现了一个高阶函数,传入两个数,和plus 或者minus ,根据是加还是减来决定执行逻辑。

后面的result3 和result4 连函数都懒得声明了,直接就是匿名函数了,更自由了,想怎么整您就直接写得嘞。

/*** You can edit, run, and share this code.* play.kotlinlang.org*/fun main() {println("Beginning:Hello, world!!!")val num1=100val num2=80val result1=num1AndNum2(num1,num2,::plus)val result2=num1AndNum2(num1,num2,::minus)println("result is $result1")println("result is $result2")//下面是使用lamda表达式的写法来实现的val result3=num1AndNum2(num1,num2){n1,n2->n1+n2}val result4=num1AndNum2(num1,num2){n1,n2->n1-n2}println("use lamda:result is $result3")println("use lamda:result is $result4")}
fun num1AndNum2(num1:Int,num2:Int,operation:(Int,Int)->Int):Int{val result=operation(num1,num2)return result}
fun plus(num1:Int,num2:Int):Int{return num1+num2
}
fun minus(num1:Int,num2:Int):Int{return num1-num2
}

运行结果

Beginning:Hello, world!!!
result is 180
result is 20
use lamda:result is 180
use lamda:result is 20