kotlin: 函数的参数/返回值类型推断

一,代码:

        //处理按钮点击事件
        binding.button5.setOnClickListener {
            //声明参数和返回类型
            val helloFun1: (String, Int)->String = { name, age ->
                "Hello World, $name, $age"
            }
            println(helloFun1("李大国", 18))

            //推断出返回值类型是String,不再声明返回类型
            val helloFun2 = { name: String, age: Int ->
                "Hello World, $name, $age"
            }
            println(helloFun2("谢永强", 23))

            val helloFun3 = fun(name: String, age: Int) = "Hello World, $name, $age"
            println(helloFun3("王木生", 33))

            val helloFun4 = fun(name: String, age: Int) = {"Hello World, $name, $age"}
            println(helloFun4("王大拿", 43))   //返回结果是一个函数,需要用invoke()
            println(helloFun4("王大拿", 43).invoke())

        }

注意3和4的区别:

 val helloFun3: (String, Int) -> String    helloFun3是一个函数,返回类型是String

val helloFun4: (String, Int) -> () -> String   helloFun4也是函数,但返回类型是() -> String,就一个lambda表达式,
所以象3、4这种写法时,要注意加不加{},有{}是返回的是表达式

二,运行结果:

image

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