在他们写的official document of Oracle about coding conventions中:
"以下是打破算术表达式的两个例子。第一个是首选,因为中断发生在括号内的表达式之外,这个表达式处于更高的级别。"
longName1 = longName2 * (longName3 + longName4 - longName5)
+ 4 * longname6; // PREFER
longName1 = longName2 * (longName3 + longName4
- longName5) + 4 * longname6; // AVOID
他们是什么意思"更高级别"?它与表达式中的评估顺序有关吗?
答案 0 :(得分:1)
是的 - 听起来他们指的是这里的操作顺序。将类似优先级的运算符保持在同一行上可以提高视觉可读性。
答案 1 :(得分:1)
我认为他们的意思是第一个字符串因为布局更好而且更有条理。我有时在java中编程,它可能会变得混乱,所以更有组织的字符串是首选,即使其他字符串可能有效。
答案 2 :(得分:1)
来自官方文件中的先前声明:
"更喜欢较高级别的休息时间到较低级别的休息时间"
换句话说,避免因可读性而破坏嵌套表达式。
表达式越多嵌套在括号中,它的级别越低。
答案 3 :(得分:1)
没有。评估顺序相同,但“高级别”表示评估顺序,在本例中为括号表达式。
此代码在高级别上划线:
longName1 = longName2 * (longName3 + longName4
- longName5) + 4 * longname6; // AVOID
此代码在低级别上划线:
ongName1 = longName2 * (longName3 + longName4 - longName5)
+ 4 * longname6; // PREFER
如果您看到代码在一行中以高级别进行评估,则可能更喜欢在低级别上打破内容以使其可读。
答案 4 :(得分:0)
我们是否在以下术语内部或外部划线:
(longName3 + longName4 - longName5)
文档表明,最好不要破坏括号中包含的上述术语,而是应该在更高的层次上发生中断。它没有暗示为什么这是优选的;您发布的两个版本的代码在逻辑上是相同的。一种可能性是,在更高级别中断会使代码更容易阅读。
答案 5 :(得分:0)
“更高级别”是指更高级别的优先级。在https://www.tutorialspoint.com/java/java_basic_operators.htm的最后,有一个关于这个主题的部分。