アカウント名:
パスワード:
b = a[i++] みたいな場合、 まず a[i] の中身を取りに行く もう i は参照しちゃったので、i は変更可 a[i] の中身を取りに行きながら、並行して i もインクリメント => 速い
だけど、b = a[++] だと まず i をインクリメント インクリメントが終わらなきゃ、どこにアクセスしていいか分からない 並行不可 => 遅い
for( ほげ; ふが; i++) とか for( ほげ; ふが; ++i) の場合 コンパイラが最適化しちゃうので、どっちも同じ
結論: 習慣化する (≒考えずにやる) なら、後置で。
インクリメント/デクリメント演算子については、言語によってセマンティクスが若干違います(Java と C でも違います。)ので、習慣化するなら前置の方ですね。前置であれば、セマンティクスの違いは無いはずです。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家
こういうこと? (スコア:2)
b = a[i++] みたいな場合、
まず a[i] の中身を取りに行く
もう i は参照しちゃったので、i は変更可
a[i] の中身を取りに行きながら、並行して i もインクリメント => 速い
だけど、b = a[++] だと
まず i をインクリメント
インクリメントが終わらなきゃ、どこにアクセスしていいか分からない
並行不可 => 遅い
for( ほげ; ふが; i++) とか for( ほげ; ふが; ++i) の場合
コンパイラが最適化しちゃうので、どっちも同じ
結論: 習慣化する (≒考えずにやる) なら、後置で。
最適化も考えればいろいろ… (スコア:0)
インクリメント/デクリメント演算子については、言語によってセマンティクスが若干違います(Java と C でも違います。)ので、習慣化するなら前置の方ですね。前置であれば、セマンティクスの違いは無いはずです。