kotlin: 区分=后是否有{}

一,代码:

        //处理按钮点击事件
        binding.button1.setOnClickListener {
            //Kotlin用直接使用 “=”来返回一个函数的值,这样的函数成为函数字面量
            fun sum1(a: Int, b: Int) = a + b
            val res = sum1(3,8)
            println("res1:"+res)

            //也可以声明一个匿名函数,
            //sum2类型:  (Int, Int) -> Int,返回值是int
            val sum2 = fun(a: Int, b: Int) = a + b
            val res2 = sum2(3,8)
            println("res2:"+res2)

            // 注意,如果增加了{},表示返回值是一段代码
            // sum3的类型是: (Int, Int) -> () -> Int,它的返回值是一个函数类型: () -> Int
            val sum3 = fun(a: Int, b: Int) = { a + b }
            // res3的类型是:  () -> Int, 它是一个函数,调用后返回int
            val res3 = sum3(3,8)
            println("res3:"+res3)
            //如果要调用,得使用invoke方法,  或者 (),它和invoke等价
            val res4 = sum3(3,8).invoke()
            println("res4:"+res4)
            val res5 = sum3(3,8)()
            println("res5:"+res5)
            val res6 = res3.invoke()
            println("res6:"+res6)
            val res7 = res3()
            println("res7:"+res7)
        }

二,运行结果:

image

posted @ 2025-08-09 13:40  刘宏缔的架构森林  阅读(8)  评论(0)    收藏  举报