如何根据 Java 中的编码约定打破长行?

问题描述 投票:0回答:6

Oracle关于编码约定的官方文档中他们写道:

“以下是中断算术表达式的两个示例。首选第一个,因为中断发生在括号表达式之外,处于更高级别。”

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

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

“更高级别”是什么意思?与表达式中求值的顺序有关吗?

java formatting word-wrap conventions sun-coding-conventions
6个回答
3
投票

来自官方文档之前的声明:

“优先选择较高级别的休息而非较低级别的休息”

换句话说,避免因可读性而破坏嵌套表达式。

表达式嵌套在括号中的次数越多,其级别越低。


1
投票

是的 - 听起来他们指的是这里的操作顺序。将相似优先级的运算符分组在同一行可以提高视觉可读性。


1
投票

我们是否在以下术语内部或外部断线的问题:

(longName3 + longName4 - longName5)

文档建议最好不要破坏括号中的上述术语,而是应该在更高级别进行破坏。 它并不表明“为什么”这更好;您发布的代码的两个版本在逻辑上是相同的。 一种可能性是,在更高级别进行中断会使代码更易于阅读。


1
投票
https://www.tutorialspoint.com/java/java_basic_operators.htm

的最后有一个关于此主题的部分。


1
投票

这段代码在低层有断线:

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

这段代码在高层有断线:

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

如果您看到在一行中以低级别评估的代码,人们会更喜欢在高级别上换行以使其可读。


0
投票

© www.soinside.com 2019 - 2024. All rights reserved.