代码之家  ›  专栏  ›  技术社区  ›  jeje

为什么分号前加空格不好?

  •  13
  • jeje  · 技术社区  · 15 年前

    这个 perlstyle

    分号前没有空格

    我承认我个人在分号前使用空格。我的理由是,这使声明更加清晰。我知道这不是一个很强的理由,但至少这是一个理由。

    print "Something\n with : some ; chars"; # good
    print "Something\n with : some ; chars" ; # bad??
    

    第二个坏的原因是什么?

    10 回复  |  直到 6 年前
        1
  •  17
  •   Community CDub    7 年前

    从描述部分的第一段开始:

    当然,每个程序员在格式化方面都有自己的偏好,但是有一些通用的指导原则可以使您的程序更易于阅读、理解和维护。

    从描述部分的第三段:

    这只是Perl程序员对风格的一种约定。如果你不喜欢它,你可以选择忽略它。我会把它比作 Sun's Java Style guidelines the suggestions for indenting in the K&R C book . 有些环境有自己的指导原则。这些恰好是对Perl的建议。

    Jon Skeet said in a deleted answer 关于这个问题:

        2
  •  8
  •   chaos    15 年前

    这只是我的观点,但我也意识到人们以不同的方式阅读代码,所以“不好”是相对的。如果你是唯一一个看代码的人,你可以做任何你喜欢的事情。然而,在看过很多Perl代码之后,我只看到一些人在语句分隔符之前加空格。

    当你做的事情与世界上其他人做的事情大不相同时,这种差异对其他人来说是显而易见的,因为他们的大脑看待它的方式不同。相反,做不同的事情会让你更难阅读别人的代码,原因也是一样的:你看不到你期望的视觉模式。

    有些时候标点符号很重要,我希望标点符号能脱颖而出,在这种情况下,分号需要 出来 顺便说一下。我经常使用条件运算符执行此操作,例如:

    my $foo = $boolean ?
                $some_long_value
                      :
                $some_other_value
                      ;
    

    如果你是一个新的程序员,输入那个该死的语句分隔符可能是你生活中的一大痛苦,但你的痛苦会随着时间的推移而改变。后来,你选择的减轻一种痛苦的时尚变成了痛苦。你最终会习惯语法的。更好的问题可能是,为什么他们还没有脱颖而出?如果你使用的是一种很好的程序员字体,它的标点符号面越来越大,你可能会更容易看到它们。

    即使你决定在你的代码中这样做,我觉得人们在写作中这样做很奇怪。在Stackoverflow之前,我从来没有真正注意到它,但是这里的许多程序员在大多数标点符号之前都使用空格。

        3
  •  4
  •   chaos    15 年前

    这不是一个好主意 规则

    在这种情况下,我同意拉里的观点,并发现分号前的空格丑陋且破坏了我的阅读过程,但像你这样的其他人可能会发现恰恰相反。当然,我更喜欢你用我喜欢的那种风格,但是书上没有关于它的任何规定。

    然而

        4
  •  4
  •   Sinan Ünür    15 年前

    正如其他人所说,这是一个风格问题,而不是一个硬性规定。例如,我不喜欢四个空格作为缩进。我是一个真正的用于块级缩进/空格的选项卡,用于排列某种程序员,所以我忽略了 perlstyle .

    open my $fh, "<", $file
        or die "could not open '$file': $!";
    

    现在,我们使用空白的第二个原因是使内容更容易阅读。是

    foo("bar") ;
    

    foo("bar");
    

    我会提出一个更难理解的说法,因为它让我注意到分号,而我在很大程度上并不关心文件格式是否正确。当然Perl很关心,如果我缺少一个,它会告诉我。

        5
  •  4
  •   ysth    13 年前

    随便放一个地方。重要的是你要始终如一;一致性允许您更容易地发现错误。

    有一种有趣的编码风格,可以放置;在下一行的开头(缩进后)。虽然这不符合我的口味,但只要它始终如一就行。

    更新:这种编码风格的一个例子(我就是这么做的) 倡导者):

    ; sub capture (&;*)
       { my $code = shift
       ; my $fh   = shift || select
       ; local $output     
       ; no strict 'refs'
       ; if ( my $to = tied *$fh )
          { my $tc = ref $to
          ; bless $to, __PACKAGE__
          ; &{$code}()
          ; bless $to, $tc
          }
          else
          { tie *$fh , __PACKAGE__
          ; &{$code}()
          ; untie *$fh
          }
       ; \$output
       }
    

    http://perl.4pro.net/pcs.html .

    (2011年更新:该页面似乎已逃之夭夭;此处可以看到一份获救的副本: http://ysth.info/pcs.html )

        6
  •  2
  •   friedo    15 年前

    风格 ,这不是规则。根据定义,样式规则是相当随意的。至于为什么不应该在分号之前加空格,那只是因为分号就是这样做的。不仅仅是Perl,还有C和所有其他Currand分号语言,它们都可以返回C和C语言中的新的C语言,如C++、C语言、目标C、JavaScript、java、PHP等等。

        7
  •  1
  •   Aric TenEyck    15 年前

    因为人们并不期待它。你这样做的时候看起来很奇怪。

        8
  •  1
  •   Dig    11 年前

    我要引用的理由是在一个项目中保持一致。我参加过一个项目,大多数程序员不会插入空格,但有一个程序员会。如果他处理一个缺陷,他可能会经常在他正在检查的代码行中添加空格,因为这是他喜欢的,并且在样式指南中没有任何其他说明。

        9
  •  0
  •   Santi    15 年前

    我真的不喜欢它。但这100%是你必须做出的个人决定和团体惯例。

        10
  •  0
  •   Toon Krijthe    15 年前

    代码样式只是一组使阅读和维护代码更容易的规则。 没有真正糟糕的风格,但有些风格比其他风格更容易被接受。当然,它们也是一些“宗教斗争”(称为花括号风格;-)的根源。

    为了进行现实生活中的比较,我们有红色、黄色/橙色和绿色的交通灯。尽管颜色会产生心理影响,但使用紫色、棕色和粉色并没有错,只是因为我们都习惯了这些颜色,交通事故就少了。