Java充满了如下语句:
if(cage.getChicken() != null) {
dinner = cage.getChicken();
} else {
dinner = getFreeRangeChicken();
}
getChicken()
在将返回的对象分配给之前,需要进行两次调用dinner
。
也可以这样写成一行:
dinner = cage.getChicken() != null? cage.getChicken() : getFreeRangeChicken();
但是可惜仍然有两个呼吁getChicken()
。
当然,我们可以分配一个局部变量,然后如果它不为null,则再次使用三元运算符对其进行分配,但这是两行,并不是那么漂亮:
FutureMeal chicken = cage.getChicken();
dinner = chicken != null? chicken : getFreeRangeChicken();
所以有什么办法可以说:
变量var =如果某个值不为null或某个其他值,则为某个值;
而且我想我只是在这里说语法,在代码编译之后,从性能的角度看,代码的编写方式可能并没有多大区别。
由于这是常见的代码,因此最好编写一个代码行。
其他语言是否具有此功能?