Android(Kotlin) Toast 使用 Elvis 运算符在 intent/arguments 的值为空时使用默认字符串值

Android(Kotlin) Toast using Elvis Operator to use a Default String value when value from intent/arguments is Null

我有这种实现方式

Toast.makeText(activity,arguments?.get("message") as String, Toast.LENGTH_SHORT).show()

所以,问题是我想在这里使用 Elvis Operator(?:),以便使用一些 default 字符串,当 toast 中显示的值为 Null 时。 我无法正确实施它。那么,如何在同一行代码中实现它呢??。 另外,更好的方法是什么? 谢谢

大概是这样的

Toast.makeText(activity,arguments!!.get("message") ?: "default", Toast.LENGTH_SHORT).show()

当使用 ? 时它只是忽略空值,但在 !! 上必须处理回退。

你可以这样做:

Toast.makeText(activity, arguments?.get("message") ?: "default message", Toast.LENGTH_SHORT).show()

在可为空的 get 调用之后简单地放置 elvis 运算符:

Toast.makeText(activity, arguments?.get("message") ?: "Default value", Toast.LENGTH_SHORT).show()

以下是一些观察结果:

  • null ?: "default" 的计算结果为 default
  • "valid str" ?: "default" 的计算结果为 valid str