Go言語におけるインクリメント++
/デクリメント--
演算子は、後置(postfix)記法のみが許容され、式(expression)ではなく 文(statement) を構成する。
i++; // i += 1; と等価 i--; // i -= 1; と等価
Why are ++ and -- statements and not expressions? And why postfix, not prefix?
https://golang.org/doc/faq
Without pointer arithmetic, the convenience value of pre- and postfix increment operators drops. By removing them from the expression hierarchy altogether, expression syntax is simplified and the messy issues around order of evaluation of++
and--
(considerf(i++)
andp[i] = q[++i]
) are eliminated as well. The simplification is significant. As for postfix vs. prefix, either would work fine but the postfix version is more traditional; insistence on prefix arose with the STL, a library for a language whose name contains, ironically, a postfix increment.
関連URL