双向回调数据 双向处理业务逻辑在android的应用场景就是:Activity界面的RecyclerView与Adapter双向的相互传递数据处理业务逻辑
class HigherOrderFunctionSuspendActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?){//简化前 num表示参数名称 val result6:String = getResult3() { num: Int ->//todo 在这里我们获取回调数据 num 数值Log.e(TAG,"输出回调数值num=$num") // 输出回调数值num=77//todo 这里我们 用户在调用getResult3()函数对参数(check:(num:Int)->Boolean),使用匿名lambda表达式 { num: Int -> true/false} 具体实现时返回类型=true 对 getResult3()函数里的业务逻辑进行处理true //lambda 表达式默认最后一行值=true作为返回值 . 传递true 返回类型true}Log.e(TAG,"回调结果result6=$result6") //回调结果result6=Android//简化后,it表示参数名称 val result7:String = getResult3 {//todo 在这里我们获取回调数据 it 数值Log.e(TAG,"输出回调数值it=$it") //输出回调数值it=77//todo 这里我们 用户在调用get Result3()函数对参数(check:(num:Int)->Boolean),使用匿名lambda表达式 { num: Int -> true/false} 具体实现时返回类型= false 对 getResult3()函数里的业务逻辑进行处理return@getResult3 false //限定的返回语法指定返回值,这里直接返回了 false,使返回类型 false.用了限定的返回语法指定返回值,不再以默认最后一行为返回值}Log.e(TAG,"回调结果result7=$result7") //回调结果result7=Java}//check表示传入一个Int类型参数,返回一个Boolean类型返回值private fun getResult3(check:(num:Int)->Boolean):String{//todo 这就是我们常说的 双向回调数据 双向处理业务逻辑//todo 这里有个大作用就是:数据回调 通过check.invoke(77)输入77进行数据回调 当用户调用getResult3函数实现时使用 匿名lambda { num: Int -> num} 就可以获取num=77回调的数值//todo 这里有个大作用就是: 用户在调用getResult3()函数对参数(check:(num:Int)->Boolean),使用匿名lambda表达式 { num: Int -> true/false} 具体实现时返回类型=true/false 对 getResult3()函数里的业务逻辑进行处理val bool:Boolean = check.invoke(77)val result :String = if (bool) "Android" else "Java"Log.e(TAG," 参数check返回结果check =$bool") //参数check返回结果check =true 参数check返回结果check =falsereturn result}}