groovy - 最接近 Groovy 中 Elvis 运算符的反面的是什么?
问题描述
所以我可以替换旧的三元运算:
def something = mainThing != null ? mainThing : "gone!"
使用猫王运算符:
def something = mainThing ?: "gone!"
但是有没有一种时髦的方法来代替它的反面:
def keyValuePair = (mainThing != null ? mainThing + "." : "") + "specific=" + value
如果前缀存在,我在哪里使用前缀加点?
解决方案
您可以使用?.
安全导航运算符来简化该表达式。当前使用的运算符 ( +
) 使这几乎不相关,但假设方法访问(这也恰好更常见),您可以键入:
def keyValuePair = mainThing?.concat('.') ?: "" + "specific=" + value
这使用.concat
而不是+
字符串连接[您可以使用.plus()
:-)],然后使用?:
. mainThing?.concat('.')
如果为 false(根据 Groovy 真值术语),则返回 null,如果不是,则返回mainThing
方法调用的结果。
推荐阅读
- laravel-blade - 当数据动态变化时,如何在表格中有效使用 laravel-livewire 中的 foreach?
- flutter - While 循环停止 Timer 运行(Dart)
- assembly - 如何将输入字符串转换为大写字母
- python - 我将如何创建一个从用户端重新启动代码的输入输入?
- python - python中的网络抓取:为每个网页复制HTML的特定部分
- php - PHP日期函数提取原始时间戳?
- javascript - Redux/React:更改 activePage 时无法读取未定义的属性“类型”
- java - Android Studio Socket.io 每隔几秒就会断开连接并重新连接
- python - 在 Python 中用另一个更大的张量替换一个张量的一部分
- python - 如何将 Python 中的顶部和底部 x 轴与 Matplotlib 匹配?