kotlin: 使用run

一,功能

run 是 Kotlin 的核心作用域函数之一,用于‌在对象上下文中执行代码块并返回计算结果‌,
支持两种形式(扩展函数与非扩展函数),适用于配置对象与数据转换的混合场景

二,例子:扩展函数形式‌(对象上下文操作)

代码:

        //处理按钮点击事件
        binding.button5.setOnClickListener {
            val person = Person("李大国", 25)
            println(person)
            val info =  person.run {
                name = "王富贵"
                age += 1
                "姓名: $name, 年龄: $age"  // 返回最终计算结果
            }
            println(info)  // 输出:姓名: 王富贵, 年龄: 26
            println(person)
        }

运行结果:

image

可见经过run后,person变量的成员也发生了变化

三,例子:非扩展函数形式‌(临时作用域创建)

代码:

        //处理按钮点击事件
        binding.button4.setOnClickListener {
            val str = "kotlin"

            run{
                val str = "java"   // 和上面的变量不会冲突
                println("str = $str")
            }

            println("str = $str")
        }

运行结果:

image

四,例子:非扩展函数形式并返回

代码:

        //处理按钮点击事件
        binding.button4.setOnClickListener {
            val index = 3
            val num = run {
                when(index){
                    0 -> "kotlin"
                    1 -> "java"
                    2 -> "php"
                    3 -> "javaScript"
                    else -> "none"
                }
            }.length

            println("num = $num")
        }

运行结果:

image

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