ホーム プログラミング言語 golang go syntax Go 言語演算子の優先順位






Go 言語演算子の優先順位




演算子は、プログラムの実行中に数学的演算または論理演算を実行するために使用されます。Go 言語では、式に複数の演算子を含めることができます。式に複数の演算子がある場合、どの演算子を最初に処理するかという優先順位の問題が発生します。これは Go 言語演算子の優先順位によって決まります。

たとえば、次の式の場合:

var a, b, c int = 16, 4, 2
d := a + b*c

a + b * c数学的規則に従って導出された場合、最初に乗算を計算し、次に加算を計算する必要があります。b b * cの結果は 8 で、 a + 8の結果はは 24 なので、d の最終値も 24 になります。実際、Go言語でもこのように扱われており、まず掛け算を計算し、次に足し算を計算するのはデータ上のルールと同じであり、読者自身が検証することができます。

最初に乗算を計算し、次に加算を計算します。これは、乗算演算子の優先順位が加算演算子の優先順位よりも高いことを示します。いわゆる優先度は、同じ式内に複数の演算子が出現する場合に、どの演算子が最初に実行されるかを指します。

Go 言語には数十の演算子があり、十数のレベルに分かれています。優先順位が異なる演算子もあれば、同じ優先順位を持つ演算子もあります。以下の表を参照してください。

Go 言語の演算子の優先順位と結合性のリスト
優先順位 分類 オペレーター 組み合わせ
1 カンマ演算子 左から右へ
2 代入演算子 =、+=、-=、*=、/=、%=、>=、<<=、&=、^=、|= 右から左へ
3 論理的または || 左から右へ
4 ロジックと && 左から右へ
5 ビットごとまたは | 左から右へ
6 ビット単位の XOR ^ 左から右へ
7 ビットごとの AND & 左から右へ
8 等しい/等しくない ==、!= 左から右へ
9 関係演算子 <、<=、>、>= 左から右へ
10 シフト演算子 <<,>> 左から右へ
11 足し算・引き算 +、- 左から右へ
12 乗算/除算/剰余 *(乗算記号)、/、% 左から右へ
13 単項演算子 !、* (ポインタ)、&、++、–、+ (正符号)、- (負符号) 右から左へ
14 後置演算子 ( )、[ ]、-> 左から右へ

注: 優先度の値が大きいほど、優先度が高くなります。

すべての演算子の優先順位を一度に覚えるのは簡単ではありませんが、幸いなことに、Go 言語のほとんどの演算子の優先順位は数学の優先順位と同じであり、今後のプログラミング プロセスで徐々に慣れることになります。本当に混乱している場合は、次のように括弧を追加できます。

d := a + (b * c)

括弧の優先順位が最も高く、括弧内の式が先に実行されるため、各演算子の実行順序が一目瞭然です。

演算子の結合性とは、同じ優先順位の演算子が同じ式内にあり、括弧がない場合、オペランドの計算順序には通常、左から右と右から左の 2 つの方法があることを意味します。たとえば、 +のとおりです。加算演算子は左から右に向かうため、式a + b + c(a + b) + cとして理解できます。

「 Go 言語演算子の優先順位」についてわかりやすく解説!絶対に観るべきベスト2動画

Go言語とは?|プログラミング言語のGo言語について3分でわかりやすく解説します【プログラミング初心者向け】
Choosing Go to process your data