在Oracle关于编码约定的官方文档中他们写道:
“以下是中断算术表达式的两个示例。首选第一个,因为中断发生在括号表达式之外,处于更高级别。”
longName1 = longName2 * (longName3 + longName4 - longName5)
+ 4 * longname6; // PREFER
longName1 = longName2 * (longName3 + longName4
- longName5) + 4 * longname6; // AVOID
“更高级别”是什么意思?与表达式中求值的顺序有关吗?
来自官方文档之前的声明:
“优先选择较高级别的休息而非较低级别的休息”
换句话说,避免因可读性而破坏嵌套表达式。
表达式嵌套在括号中的次数越多,其级别越低。
是的 - 听起来他们指的是这里的操作顺序。将相似优先级的运算符分组在同一行可以提高视觉可读性。
我们是否在以下术语内部或外部断线的问题:
(longName3 + longName4 - longName5)
文档建议最好不要破坏括号中的上述术语,而是应该在更高级别进行破坏。 它并不表明“为什么”这更好;您发布的代码的两个版本在逻辑上是相同的。 一种可能性是,在更高级别进行中断会使代码更易于阅读。
这段代码在低层有断线:
longName1 = longName2 * (longName3 + longName4
- longName5) + 4 * longname6; // AVOID
这段代码在高层有断线:
ongName1 = longName2 * (longName3 + longName4 - longName5)
+ 4 * longname6; // PREFER
如果您看到在一行中以低级别评估的代码,人们会更喜欢在高级别上换行以使其可读。