インクリメント演算子, デクリメント演算子

Pythonにはないのね。なんとなくPythonにないのは腑に落ちるけど、Rubyにもないのか。へー。覚えることを少なくするため、っていうことなのかな。

あー、忘れてたけど、インクリメント演算って、前置とか後置とか意識するのめんどくさいし、挙動がいろいろ微妙でめんどくさいっぽい。
Perlでこんなコードを実行すると

my $foo = 1;
my $bar = ++$foo + $foo++;
print $bar . "\n";
  1. 左辺の"++$foo"が実行されて、前置なので左辺値が2になる
  2. 右辺の"$foo++"が実行されるけど、後置なので返される値は2
  3. なので"$bar"には"2 + 2"の結果の"4"が代入される

と思ったけど、

5

って表示される。謎。
そもそもPerlの計算の実行順序もよくわかってないなあ。まあ、こんなコード使うこと一生ないだろうから別にいいんだけど。

そういう評価順序とか面倒なことを考えないといけないのなら、インクリメント演算子がないということも理解できるなあと思ったというお話でした。