如何在Java中打破长线

时间:2018-01-18 02:08:55

标签: java linewrap

在他们写的official document of Oracle about coding conventions中:

  

"以下是打破算术表达式的两个例子。第一个是首选,因为中断发生在括号内的表达式之外,这个表达式处于更高的级别。"

longName1 = longName2 * (longName3 + longName4 - longName5)
 + 4 * longname6; // PREFER

longName1 = longName2 * (longName3 + longName4
 - longName5) + 4 * longname6; // AVOID

他们是什么意思"更高级别"?它与表达式中的评估顺序有关吗?

6 个答案:

答案 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的最后,有一个关于这个主题的部分。