在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;
答案 0 :(得分:4)
if
语句修饰符中的条件永远不需要Parens,因此一致性和播放安全性不是因素。 (其他语句修饰符也一样。)
我认为使用它们没有任何好处。事实上,我发现它们有点刺耳。
我相信大多数经验丰富的Perl程序员都不会使用它们,以至于它是“新手”的公平指标。
答案 1 :(得分:3)
这主要是风格问题。没有要求在整个条件表达式周围使用parens,它对代码的行为方式没有影响,因此请自行决定要使用的标准。就我个人而言,我的印象是大多数Perl程序员都没有,但这可能只是选择偏见。
但是,我会注意到,每当我开始想要在条件表达式中使用parens时,这是一个非常好的迹象,它不应该在postfix子句中,所以我把parens放在一边整个事情,并将其更改为if (...) {...}
形式。
答案 2 :(得分:0)
如果您想使用Perl Best Practices,则只应postfix if
来控制流量(break
,next
,last
)。当你使用postfix if
时,你应该有足够的if语句来不需要括号。
对于If blocks
我认为最佳做法是使用括号。
答案 3 :(得分:0)
我通常使用括号,因为我经常错误地说我需要有多少语句是有条件的。然后我必须重写该行才能成为一个合适的if (condition) { BLOCK }
。已经有括号使这更容易。
还有所有if语句看起来相同的心理/可读性好处。