Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android标准大括号样式_Java_Android_Coding Style - Fatal编程技术网

Java Android标准大括号样式

Java Android标准大括号样式,java,android,coding-style,Java,Android,Coding Style,在阅读中,它指出: 我们需要用牙套把牙齿固定住 条件语句。除了 如果整个条件 条件和身体)安装在一个 行,您可以(但没有义务 把它全部放在一行上。就是, 这是合法的: 这是合法的: 但这仍然是非法的: 为什么最后提到的不好?这是上述两种风格的混合,但是不使用这种风格的动机是什么?依我看,它是可读性最好的(或与第一个一样可读) 我知道这可能不适用于Android,但这是我第一次听说它。在你的代码中,这是一种糟糕的风格,你有一个不使用缩进来决定如何处理代码的语言问题。假设我正在维护您的代码,并看到以

在阅读中,它指出:

我们需要用牙套把牙齿固定住 条件语句。除了 如果整个条件 条件和身体)安装在一个 行,您可以(但没有义务 把它全部放在一行上。就是, 这是合法的:

这是合法的:

但这仍然是非法的:

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


我知道这可能不适用于Android,但这是我第一次听说它。

在你的代码中,这是一种糟糕的风格,你有一个不使用缩进来决定如何处理代码的语言问题。假设我正在维护您的代码,并看到以下内容:

if (condition)
    body();  // bad!
我决定在上面加一行,这样做:

if (condition)
    body();  // bad!
    myconditionalfcn(); // Will always execute
您使用的其他两种样式可以防止此错误,一种是将整个条件设置为一行,另一种是确保在大括号中输入新函数


在处理别人的项目时,你永远不应该打破他们的风格。在处理自己的项目时,您应该努力使自己的风格具有可读性——第二种风格在可读性方面存在的问题是,它可能会造成如上所述的混乱。一个好的编辑器可以让您自动更正此错误,但(几乎)最好首先避免它,不要像那样拆分单行条件。

个人代码样式首选项与严格遵守样式标准相结合,为其项目做出贡献


如果您对向AOSP提交任何代码不感兴趣,我也不会太担心它。

它并不特别适用于Android。和所有缩进问题一样,这是一个品味问题。无论如何,使用:

if (condition)
    body();  // bad!
可能会让快速阅读代码的人感到困惑,因为可能不清楚条件语句的结尾。 就我个人而言,我更喜欢第一种风格:

if (condition) {
    body(); 
}
基于以下原因:

  • 这一点都不含糊
  • 如今,IDE(如Eclipse)甚至可以使用自动完成快速编写
  • 在括号内添加其他语句更快,通常需要这样做

  • 为了可读性,我更喜欢

    if (conditiontest) doOneThing();
    
    在这两个问题上

    if (conditiontest) { doOneThing(); }
    
    if (conditiontest) {
         doOneThing();  }
    
    if (conditiontest) { 
         doOneThing(); 
         }
    

    这主要是我的意见。但我认为它增强了它的简洁性

    IMHO,当谈到代码格式时,不能使用“合法”和“非法”这样的词。在我看来,非法的东西比你的申请更有害。正确或错误的格式设置不会导致程序失败,格式设置只是使代码可读的一种方法。如果你在团队中工作,你应该考虑使用正确的格式来让你的队友理解你的代码。当你独自工作时,这并不重要,你可以用自己的格式风格写任何你喜欢的东西。那只是我的意见


    另外,我个人只使用第一种风格,它有助于防止愚蠢的错误。

    编码风格是指导原则,合法的是语言定义允许的

    当他们在编码风格上使用术语legal时,他们只是指他们将接受的内容。榜样

    if (condition)
      body();
    
    特别指出它混淆了缩进和执行,这实际上不是Java语言规范的一部分。换句话说,有人可能会看

    if (condition)
      statement1();
      statement2();
    
    并且认为语句1和语句2仅在条件为true时执行。注意这个人可能会犯一个精神上的错误;一个好的编码风格会尽量减少可能发生在他人头脑中的思维错误

    允许是否正确

    if (condition) statement1();
    
    这一点值得商榷。对许多人来说,这是可以接受的;然而,它实际上受到与上述示例相同的问题的影响。Java不会根据空白的类型或数量做出决策,而是根据是否存在空白做出决策。换句话说,这样做可能会让人困惑

    if (condition) statement1(); statement2();
    
    始终执行语句2;希望让他们误以为语句2的执行在某种程度上取决于条件。原因是

    if (condition) statement1();
    
    人们普遍认为,这与极少数人看到这样的陈述有很大关系

    if (condition) statement1(); statement2();
    
    但接受非大括号版本与实际提高代码质量无关,它只是有时被接受,因为通常人们不会编写令人困惑的“一行中的所有”if语句

    对于if语句,确保人们不会将行为与空白联系起来的唯一安全方法是始终插入大括号

    if (condition) { statement1(); } statement2();
    
    可能看起来很奇怪,但它可以保证提供足够的视觉线索,使人不会在心理上错误地认为语句2的执行取决于语句1

    最后,

    if (condition) {
      statement1();
    }
    statement2();
    
    永远不会把任何人搞糊涂。唯一可能的成本是存储几个额外的空白字符和添加两行水平类型的行。考虑到有多少存储空间可用,我想说存储的争论最终是死的。屏幕房地产的争论仍然存在;但是,有时强迫一个想法变得清晰值得在屏幕上多放几行字(而且今天的屏幕比过去大得多)。当我们考虑到由于阅读代码中的“心理错误”而在追求“错误想法”方面浪费人力的成本时;看来,这里或那里的一些额外的卷发牙套可以很好地支付自己


    此外,如果您背靠背地使用大量if语句,那么最好使用开关或多态性。

    实际上
    if(condition)body();myconditionalfcn()(全部在一行上)也同样糟糕。真正健壮的编码风格要求在每一块代码上都使用大括号。@Edwin不是所有的风格都要求在每一块代码上使用大括号(我个人的风格是d)
    
    if (condition) statement1(); statement2();
    
    if (condition) { statement1(); } statement2();
    
    if (condition) {
      statement1();
    }
    statement2();