オペレータの関連性が重要なのはいつですか。
-
21-12-2019 - |
質問
ほとんどのプログラミング言語には、バイナリ演算子の優先順位と関連性があります。関連性が重要な場合(a - b) - c
!= a - (b - c)
しかし、&&
のような連想演算子では問題ないように見えますが、ほとんどの言語はこれを左連想としてリストします。
(a && b) && c
とa && (b && c)
の間に実際の違いがある状況はありますか?
解決
私はそんなに多くの間違った(削除された)答えがあると信じられない...多分私はこれに答えるべきです。
まず、 優先順位!=関連性!=評価順
今は邪魔にならないようにしています:関連性がある場合があります。
a + b + c
の場合、a
、b
、およびc
が整数の代わりに浮動小数点数である場合、それは整数の代わりに浮動小数点数です。
他のヒント
@ Mehrdadsへの追加(私が跳ね返った):
パーサーを構築した場合は、演算子が関連性を持たなければならないことに気付くでしょう。それ以外の場合は
a && b && c
.
は単に構文エラーです。上記が構文エラーであるべきではないと仮定すると、どういう意味かを決定する必要があります。
(a && b) && c
.
または
a && (b && c)
.
あなたはただ言うことはできません:私は気にしない。
所属していません StackOverflow