操作者 ++ Perl

双加操作员用于在Perl增加值的一个变量之一。

例如:

▶ Run
#!/usr/bin/perl

my $i = 100;

$i++;

print $i;

该程序将显示的数目101中。

条目形式

有两种形式的记录:你可以指定的操作者之后的变量(后缀符号)或前该变量(前缀表示):

$i++;
++$i;

如果该命令在一个线之间没有差别前缀和后缀符号。 是有区别的唯如果操作者 ++ 被用于作为团队的一部分。 如果 ++ 位于前面的变量 变量值将增加执行之前的剩余的命令。 如果 ++ 后的变量,然后 变量值将增加之后执行剩余的命令。

这里就是一个例子。

这一程序显示的数目100和101:

▶ Run
#!/usr/bin/perl

use feature qw(say);

my $i = 100;

say $i++;
say $i;

但该程序显示的数目101两次:

▶ Run
#!/usr/bin/perl

use feature qw(say);

my $i = 100;

say ++$i;
say $i;

++

操作者 ++ 有一个特别的魔法。 它的行为在一个特殊的方式,如果它是适用于可变这是一串。

而且有趣的是, 操作者 -- 因此没有魔法。

例。 这个程序将显示串 a2:

▶ Run
#!/usr/bin/perl

my $str = 'a1';

$str++;

print $str;

这里是一些例子,这将使操作者 ++ 的串在一个变量:

'a' -> 'b'
'b' -> 'c'
'z' -> 'aa'
'aa' -> 'ab'
'az' -> 'ba'
'zz' -> 'aaa'

'A1' -> 'A2'
'A9' -> 'B0'

'undef' -> 'undeg'

'A+100' -> '1'

当你使用操作 ++ 串有很多微妙之处。 这是最好的,不适用于行。 如果你 使用进行操作的,你有一个非常好的理解它是如何工作或有错误。 但它可能是人 之后你会有工作与这种代码不那么了解一个 ++ 为串当你改变码添加的错误。

滥用

操作者 ++ 只能用于变量。 如果你试图使用 ++ 不可变的,而素, 会产生一种错误。 这里是一个例子码的错误:

▶ Run
#!/usr/bin/perl

my $i = 100++; # error!

当你执行这个程序,它将错误:

Can't modify constant item in postincrement (++) at script.pl line 3, near "100++"
Execution of script.pl aborted due to compilation errors.

同样,它不能被应用于数组:

▶ Run
#!/usr/bin/perl

my @arr = (1, 2, 3);

@arr++; # error
Can't modify private array in postincrement (++) at script.pl line 5, near "@arr++"
Execution of script.pl aborted due to compilation errors.

和哈希:

▶ Run
#!/usr/bin/perl

my %h = (
    a => 1,
);

%h++; # error
Can't modify private hash in postincrement (++) at script.pl line 7, near "%h++"
Execution of script.pl aborted due to compilation errors.

其他文章