有没有更清晰、更惯用的方式来重写这个“检查、分配和返回”函数?
fun getX(): Y {
if (X == null) {
X = ...
}
return X!!
}
Run Code Online (Sandbox Code Playgroud)
编辑:我知道 Elvis 运算符,但问题是,尽管我可以使用语法糖节省几行
fun getX(): Y {
X = X ?: ...
return X!!
}
Run Code Online (Sandbox Code Playgroud)
我不会更改代码的语义。无论如何我都需要强制转换(!!)。所以是一样的,只是短了三行。
编辑:X是某个对象的属性,我需要更新它。
您可以使用以下函数将赋值移至 elvis 运算符的右侧also:
fun getX() = x ?: valueIfXisNull.also { x = it }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
252 次 |
| 最近记录: |