有人可以帮助我理解 ' +=
' 运算符在特定情况下的含义。脚本说:
$receipts{$weather} += $receipt;
$days{$weather}++;
假设$foo += $bar
,+=
操作员执行以下操作:
$foo = $foo + $bar;
也就是说,$foo
增加$bar
. 假设$foo++
,++
操作员执行以下操作:
$foo = $foo + 1;
也就是说,将变量加一。
尽管如此,这些运算符也有一些隐藏的 perl 魔法。例如,+=
and++
运算符不会给出未初始化的警告,相应的语句会:
# $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
它将 的值添加$receipt
到 的值$receipts{$weather}
并将结果存储回$receipts{$weather}
. 它相当于:
$receipts{$weather} = $receipts{$weather} + $receipt
但是,在某些情况下,它可能会更有效地实施。
请参阅perldoc perlop:
“=”是普通的赋值运算符。
赋值运算符的工作方式与 C 中的一样。也就是说,
$a += 2;
相当于
$a = $a + 2;
例子:
这个例子:int i = 2; 我=我+4;这个例子 int i = 2; i+=4 相同;