-6

+=特定の状況で ' ' 演算子が何を意味するかを理解するのに誰か助けてくれませんか? スクリプトは次のように述べています。

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

4 に答える 4

10

と仮定すると$foo += $bar+=オペレーターは次のことを行います。

$foo = $foo + $bar;

つまり、 ずつ増加$foo$barます。と仮定すると$foo++++オペレーターは次のことを行います。

$foo = $foo + 1;

つまり、変数を 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'

この++演算子には、ポスト インクリメントとプリ インクリメントの 2 つの種類があります。式の戻り値は、増分の前または後に計算されます。

$foo = 1;
print ++$foo;   # prints 2
print $foo++;   # prints 2, but $foo is now 3
于 2013-03-22T18:23:22.857 に答える
3

$receiptの値を の値に加算し$receipts{$weather}、結果を に戻します$receipts{$weather}。これは次と同等です。

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

ただし、場合によっては、より効率的に実装できます。

于 2013-03-22T18:16:13.257 に答える
2

perldocperlopを参照してください。

"="は通常の代入演算子です。

代入演算子はCのように機能します。つまり、

   $a += 2;

と同等です

   $a = $a + 2;
于 2013-03-22T18:29:07.257 に答える
0

例:

この例: int i = 2; i=i+4; そしてこの例 int i = 2; i+=4 は同じです。

于 2013-03-22T18:16:05.593 に答える