kotlin语法之将函数作为参数

 // 带参数不带返回值
    private fun setListener(l: (c: Context) -> Unit) {
        //方法一
        l(context)
        //方法2 invoke()方法是kotlin对象类中默认持有的方法
        l.invoke(context)
    }


    // 带参数带返回值
    private fun setOnListener(l: (c: Context) -> Boolean) {
        //方法一
//      val value=  l(context)
        //方法2 invoke()方法是kotlin对象类中默认持有的方法
        val value = l.invoke(context)
        if (value) {
            Log.d("TAG", "setOnListener: 我是正确的")
        } else {
            Log.d("TAG", "setOnListener:我是错误的 ")
        }

    }
    // 使用,只有一个参数时,可以用it代替传入的参数

    fun setOnClickListener() {
        setListener { Toast.makeText(it, "test param", Toast.LENGTH_SHORT).show() }

        //带返回值
        setOnListener {
            Toast.makeText(it, "test param带返回值", Toast.LENGTH_SHORT).show()
            "3" is String
        }
    }

原文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值