Kotlin将函数作为参数传递

 override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        print(getResult("哦这是什么:","这是Android啊",::logFun));
    }
    /**
      此函数作为参数传递
    */
    fun logFun(msg:String,msg2:String):Int {
        Log.d("----->msg:${msg},${msg2}","----")
        return 1;
    }
    /**
     * 在 Kotlin 中返回值为 Int
     *
     * 此方法接收一个无参数的函数并且无返回
     */
    private fun getResult(arg01:String,arg02:String,method: (arg1:String,arg2:String) -> Int) {
        System.out.println("----->msg:执行方法之前")
        var ret= method(arg01,arg02);
        System.out.println("----->msg:执行方法之后"+ret)
    }

         arg01,arg02是实参,     arg1,arg2是形参,是要传人的函数   ->Int 返回Int类型,如果没有返回值写成->Unit

你可能感兴趣的:(Kotlin)