我应该在postfix`if`语法中使用括号吗?

时间:2015-12-18 12:07:19

标签: perl

在postfix if语句中使用括号是否有任何好处?像:

return 1 if ($self->found());

我的一位同事坚持使用括号,这对我来说并不常见。如果有人指出差异,我将不胜感激。

以下是perl -MO=Deparse

的输出
#!/usr/bin/perl
use strict;

my $found = 1;

print "FOUND\n" if $found;
print "FOUND\n" if ($found);

__END__
test.pl syntax OK
use strict;
my $found = 1;
print "FOUND\n" if $found;
print "FOUND\n" if $found;

4 个答案:

答案 0 :(得分:4)

if语句修饰符中的条件永远不需要Parens,因此一致性和播放安全性不是因素。 (其他语句修饰符也一样。)

我认为使用它们没有任何好处。事实上,我发现它们有点刺耳。

我相信大多数经验丰富的Perl程序员都不会使用它们,以至于它是“新手”的公平指标。

答案 1 :(得分:3)

这主要是风格问题。没有要求在整个条件表达式周围使用parens,它对代码的行为方式没有影响,因此请自行决定要使用的标准。就我个人而言,我的印象是大多数Perl程序员都没有,但这可能只是选择偏见。

但是,我会注意到,每当我开始想要在条件表达式中使用parens时,这是一个非常好的迹象,它不应该在postfix子句中,所以我把parens放在一边整个事情,并将其更改为if (...) {...}形式。

答案 2 :(得分:0)

如果您想使用Perl Best Practices,则只应postfix if来控制流量(breaknextlast)。当你使用postfix if时,你应该有足够的if语句来不需要括号。

对于If blocks我认为最佳做法是使用括号。

答案 3 :(得分:0)

我通常使用括号,因为我经常错误地说我需要有多少语句是有条件的。然后我必须重写该行才能成为一个合适的if (condition) { BLOCK }。已经有括号使这更容易。

还有所有if语句看起来相同的心理/可读性好处