与标准的if-else语句相比,?:运算符有什么好处和缺点.显而易见的是:
有条件的?:运营商
标准If/Else
根据声明,可读性似乎各不相同.在第一次接触到?:运算符后的一段时间内,我花了一些时间来精确地消化它是如何工作的.您是否会建议尽可能使用它,或者坚持if/else,因为我与许多非程序员一起工作?
只是一个快速的,有没有速记这个?
它基本上是左或右的方向,左边是1,右边是0
在C#中:
if (column == 0) { direction = 0; }
else if (column == _gridSize - 1) { direction = 1; }
else { direction = rand.Next(2); }
Run Code Online (Sandbox Code Playgroud)
此后的声明将是:
if (direction == 1)
{
// do something
}
else
{
// do something else
}
Run Code Online (Sandbox Code Playgroud)
如果没有,那真的不重要!只是好奇:)
在PHP中,三元运算符有一个简短的版本.
expr1 ? expr2 : expr3;
Run Code Online (Sandbox Code Playgroud)
改变成
expr1 ? : expr3;
Run Code Online (Sandbox Code Playgroud)
short版本返回expr1的结果为true,expr3的结果为false.这允许很酷的代码可以根据自己的当前状态填充变量.例如:
$employee = $employee ? : new Employee();
Run Code Online (Sandbox Code Playgroud)
如果$employee == null由于任何其他原因或由于任何其他原因评估为false,则上面的代码将创建a new Employee();否则$employee将将值重新分配给自身.
我在Java中寻找类似的东西,但我找不到三元运算符的任何类似用例.所以我想问是否有这样的功能或类似的东西可以避免三元运算符的一个表达式,以减少重复.