我喜欢Kotlin的解构功能,它们帮助我整理代码并专注于基本功能.
我遇到了一个案例,我无法弄清楚正确的语法,如何通过破坏重新分配变量?
var (start, end) = startEndDate(198502)
// intellij neither accept this ...
start, end = startEndDate(200137)
// ... nor this
(start, end) = startEndDate(200137)
Run Code Online (Sandbox Code Playgroud)
hot*_*key 11
从语言的角度来看,在解构声明中声明的变量只是单独的独立变量,目前Kotlin没有提供在单个语句中分配多个变量的方法.
您只能再次对表达式进行解构并逐个分配变量:
var (start, end) = startEndDate(198502)
val (newStart, newEnd) = startEndDate(200137)
start = newStart
end = newEnd
Run Code Online (Sandbox Code Playgroud)
如果你需要证明这两个变量有一些特殊含义并且应该一起分配,你可以声明一个本地函数,它重新分配它们:
var (start, end) = startEndDate(198502)
fun setStartEnd(pair: Pair<SomeType, SomeType>) { start = pair.first; end = pair.second }
setStartEnd(startEndDate(200137))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1220 次 |
| 最近记录: |