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)
}
运行结果:
可见经过run后,person变量的成员也发生了变化
三,例子:非扩展函数形式(临时作用域创建)
代码:
//处理按钮点击事件
binding.button4.setOnClickListener {
val str = "kotlin"
run{
val str = "java" // 和上面的变量不会冲突
println("str = $str")
}
println("str = $str")
}
运行结果:
四,例子:非扩展函数形式并返回
代码:
//处理按钮点击事件
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")
}
运行结果: