有人可以帮我理解“+=
”运算符在特定情况下的含义。该剧本说:
$receipts{$weather} += $receipt;
$days{$weather}++;
答案 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是相同的;