Java中到处都充斥着像这样的语句:
if(cage.getChicken() != null) {
dinner = cage.getChicken();
} else {
dinner = getFreeRangeChicken();
}
需要两次调用 getChicken()
才能将返回的对象分配给 dinner
。
也可以写成一行,如下所示:
dinner = cage.getChicken() != null? cage.getChicken() : getFreeRangeChicken();
可惜的是,还有两个对getChicken()
的调用。
当然,我们可以先分配一个本地变量,然后再次使用三元运算符进行赋值(如果不为空),但这需要两行代码,看起来不太美观:
FutureMeal chicken = cage.getChicken();
dinner = chicken != null? chicken : getFreeRangeChicken();
那么有没有一种方法可以这样写:
如果某个值不为空,则变量var = 某个值,否则变量var = 另一个值;
我猜我只是在谈论语法,在编译代码之后,它可能在性能方面并没有太大区别。
由于这是如此常见的代码,有一个一行式的代码会很棒。
其他语言是否具备此功能?