【问题标题】:Null and Empty check using Elvis Operator使用 Elvis 运算符进行 Null 和 Empty 检查
【发布时间】:2020-04-21 17:17:43
【问题描述】:

我有:

return if(mValue== null || mValue.asString.isNullOrEmpty()) "Home" else mValue.asString

我尝试过执行猫王算子:

return mValue?.asString ?: "Home"

但我也想检查mValueempty 情况。

因此,如果mValue 为空或为空,我想返回“Home”,否则以字符串形式返回其内容,而不使用whenif

谢谢!

【问题讨论】:

  • 尝试使用isNullOrEmpty()

标签: kotlin


【解决方案1】:

你可以结合orEmptyifEmpty

return mValue?.asString.orEmpty().ifEmpty { "Home" }

这是否是一种改进,我不知道。

【讨论】:

  • 什么是asString?我喜欢你的解决方案,但不知道那个方法是什么......我会使用类似(mValue as String?)...
  • 我不知道asString 是什么。 OP 在他们的问题中使用了它,所以我认为它是 mValue 的任何属性。
【解决方案2】:

如果字符串为空,您实际上不能使用 elvis 运算符。根据documentation elvis 运算符仅用于检查变量是否为空。因此,我建议您使用:

return if (mValue.isNullOrEmpty()) "Home" else mValue

希望对你有帮助!

【讨论】:

  • 非常感谢!这回答了我的问题!我不能强迫猫王操作员做它不能做的事情。
  • @HumbleHermit 很高兴它有帮助 :) 有美好的一天!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-19
  • 2022-11-13
  • 1970-01-01
相关资源
最近更新 更多