仅当不是 Kotlin 时才为变量赋值



Kotlin 中是否有一种干净的方法,仅在值不为 null 时才为变量赋值?

我的例子是:

if(x != null)
y = x

我找到了这样的解决方案

y = x? : return

但我不明白这是否符合我的意愿以及该运算符的工作原理。

如果您还不想从函数返回,则另一种解决方案:

x?.let{ y = it }

它会检查x是否为非空,然后将其作为唯一的参数传递给 lambda 块。

如果您的xvar,这也是一个安全的电话。

运算符称为 Elvis 运算符。它评估x是否不为 null,如果为 true,则将x分配给y。如果为 null,它将计算问号后面的语句,立即返回,因此y保持不变。

对于那些搜索并想要一个不会立即返回的解决方案的人。 你可以捏着鼻子做这件事:

y = x ?: y

作为一个优秀的程序员,我不寒而栗地为自己分配一个变量来满足语法。 但那是你的 kotlin! 那些设计师想到了一切!

您的代码完全相同,但编写的内容较少:

if(x != null)
y = x
else
return

使用 Elvis 运算符时,它将 if else 语句缩短为:

y=x ?: return

如果左侧为真(x 不为空(,则将分配 y,否则将执行右侧。

相关内容

  • 没有找到相关文章

最新更新