'+ ='运算符的含义

时间:2013-03-22 18:13:37

标签: perl

有人可以帮我理解“+=”运算符在特定情况下的含义。该剧本说:

$receipts{$weather} += $receipt;
$days{$weather}++;

4 个答案:

答案 0 :(得分:10)

假设$foo += $bar+=运算符执行以下操作:

$foo = $foo + $bar;

$foo增加$bar。假设$foo++++运算符执行以下操作:

$foo = $foo + 1;

即,将变量递增1。

有了这一切,这些运营商也有一些隐藏的perl魔法。例如,+=++运算符不会在相应的语句中给出未初始化的警告:

# $foo is undefined
$foo += 10;        # no warning
$foo++;            # no warning
$foo = $foo + 10   # Use of uninitialized value $foo in addition

++运算符也适用于字符串

my $foo = 'a';
$foo++;
print $foo;     # prints 'b'

++运算符有两种形式,后增量和预增量。表达式的返回值可以在递增之前或之后计算:

$foo = 1;
print ++$foo;   # prints 2
print $foo++;   # prints 2, but $foo is now 3

答案 1 :(得分:2)

它将$receipt的值添加到$receipts{$weather}的值,并将结果存回$receipts{$weather}。它相当于:

$receipts{$weather} = $receipts{$weather} + $receipt

但是,在某些情况下可以更有效地实施。

答案 2 :(得分:2)

请参阅perldoc perlop

  

" ="是普通的赋值运算符。

     

赋值运算符的工作方式与C相同。即

   $a += 2;
     

相当于

   $a = $a + 2;

答案 3 :(得分:0)

示例:

这个例子:int i = 2; I = I + 4;这个例子int i = 2; i + = 4是相同的;