Kon*_*tin 3 java coding-style conventions ternary-operator conditional-operator
int foo = bar > baz ? bar : baz;
int foo = someBoolean ? bar : baz;
int foo = (bar > baz) ? bar : baz;
int foo = (someBoolean) ? bar : baz;
int foo = (bar > baz) ? bar : baz;
int foo = someBoolean ? bar : baz;
我无法决定应使用这三个中的哪一个。我可以:
在示例中,请不要使用括号并冒着可读性差的危险,例如:
min[0] = min[0] > pos.x ? pos.x : 0;
始终使用括号,但冒着简短表达式中有些难看的代码的风险:
setValue(val + scrollBar.getBlockIncrement() * ((scrollsUp) ? -1 : 1));
当条件中有空格时,请放在两者之间,并使用括号;但如果条件只是布尔变量,则不要使用括号:
min[0] = (min[0] > pos.x) ? pos.x : 0;
setValue(val + scrollBar.getBlockIncrement() * (scrollsUp ? -1 : 1));
甲骨文Code Conventions
陈述以下
return (condition ? x : y);
Run Code Online (Sandbox Code Playgroud)
.. 并进一步
if (a == b && c == d) // AVOID!
if ((a == b) && (c == d)) // RIGHT
Run Code Online (Sandbox Code Playgroud)
...被免费翻译成
return (someBoolean ? x : y);
return ((x > y) ? x : y);
Run Code Online (Sandbox Code Playgroud)
..虽然就我个人而言,我不介意放宽一两个括号。最后,这仍然是一个主观的问题。如果您觉得添加/删除括号可以提供更好的可读性,那么请务必这样做。