Android标准支撑式合法性

whi*_*win 5 java android coding-style

阅读这条信息,它指出:

对于条件语句,我们需要在语句周围使用大括号.除非,如果整个条件(条件和正文)适合一行,您可以(但没有义务)将它全部放在一行上.也就是说,这是合法的:

if (condition) {
    body(); 
}
Run Code Online (Sandbox Code Playgroud)

这是合法的:

if (condition) body();
Run Code Online (Sandbox Code Playgroud)

但这仍然是非法的:

if (condition)
    body();  // bad!
Run Code Online (Sandbox Code Playgroud)

为什么最后提到的不好?它是上述两种的混合,但使用这种风格的动机是什么?IMO,它是最可读的(或第一个可读的).

我知道这可能不适用于Android,但它是我听说过的第一个地方.

Dyl*_*uge 10

在你所拥有的代码不好的样式中,你会遇到不使用缩进来确定如何处理代码的语言的问题.想象一下,我正在维护你的代码并看到这个:

if (condition)
    body();  // bad!
Run Code Online (Sandbox Code Playgroud)

我决定为它添加一行,使其成为现实:

if (condition)
    body();  // bad!
    myconditionalfcn(); // Will always execute
Run Code Online (Sandbox Code Playgroud)

另外两种风格可以防止这种错误,一种是将整个条件设为一行,另一种是通过确保我在括号内输入我的新功能.

在处理别人的项目时,你永远不应该打破他们的风格.在处理自己的项目时,你应该努力追求自己的风格 - 第二个问题,就可读性而言,它会引起如上所述的混乱.一个好的编辑器可以让你自动纠正这个错误,但是(几乎)总是更好地避免它首先通过没有像这样拆分的单行条件.