有人可以帮我理解' +='运算符在特定情况下的含义.该剧本说:
$receipts{$weather} += $receipt;
$days{$weather}++;
Run Code Online (Sandbox Code Playgroud)
TLP*_*TLP 10
假设$foo += $bar,+=运营商执行以下操作:
$foo = $foo + $bar;
Run Code Online (Sandbox Code Playgroud)
也就是说,递增$foo的$bar.假设$foo++,++运营商执行以下操作:
$foo = $foo + 1;
Run Code Online (Sandbox Code Playgroud)
也就是说,将变量递增1.
尽管如此,这些运算符还有一些隐藏的perl魔法.例如,+=和++运算符不会给出未初始化的警告,其中相应的语句将:
# $foo is undefined
$foo += 10; # no warning
$foo++; # no warning
$foo = $foo + 10 # Use of uninitialized value $foo in addition
Run Code Online (Sandbox Code Playgroud)
该++操作也适用于字符串
my $foo = 'a';
$foo++;
print $foo; # prints 'b'
Run Code Online (Sandbox Code Playgroud)
该++操作有两种版本,后增量和前增量.表达式的返回值是在递增之前或之后计算的:
$foo = 1;
print ++$foo; # prints 2
print $foo++; # prints 2, but $foo is now 3
Run Code Online (Sandbox Code Playgroud)