Python にはなぜ++
and演算子がないのでしょうか?--
ベストアンサー1
それは意味をなさないからではありません。"x++" を "x += 1、x の前のバインディングを評価する" と定義することは完全に意味をなします。
元々の理由を知りたい場合は、古い Python メーリング リストを調べるか、そこにいた人 (例: Guido) に尋ねる必要がありますが、事後的に正当化するのは簡単です。
単純な増分と減分は、他の言語ほど必要ありません。for(int i = 0; i < 10; ++i)
Python のように書くことはあまりなく、代わりに のようなことをしますfor i in range(0, 10)
。
それほど頻繁に必要となるわけではないので、独自の特別な構文を用意する理由はほとんどありません。増分する必要がある場合は、+=
通常これで十分です。
これは、それが理にかなっているかどうか、またはそれが実行可能かどうかの決定ではありません。理にかなっているし、実行可能です。問題は、その利点が言語のコア構文に追加する価値があるかどうかです。これはpostinc、postdec、preinc、predec の4 つの演算子であり、それぞれに独自のクラス オーバーロードが必要であることを覚えておいてください。これらはすべて指定およびテストされる必要があります。これにより、言語にオペコードが追加されます (つまり、VM エンジンが大きくなり、したがって遅くなります)。論理増分をサポートするすべてのクラスは、それらを実装する必要があります (+=
およびの上に-=
)。
これはすべて および と重複している+=
ため-=
、純損失になります。