Go語言運算符優先順序示例

運算符優先順序確定運算式中的分組。這會影響運算式的計算方式。某些運算符比其他運算符具有更高的優先順序; 例如,乘法運算符比加法運算符有更高的優先順序。

例如:x = 7 + 3 * 2; 這裏,計算結果x被分配13,而不是20,因為運算符 *具有比+有更的優先順序,所以它首先乘以3 * 2,然後加上7

這裏,具有最高優先順序的運算符放在表的頂部,具有最低優先順序的運算符出現在底部。 在運算式中,將首先計算較高優先順序運算符。

運算符優先順序示例

分類 描述 關聯性
尾碼 () [] -> . ++ - - 左到右
一元 + - ! ~ ++ - - (type)* & sizeof 右到左
乘法 * / % 左到右
加法 + - 左到右
移位 << >> 左到右
關係 < <= > >= 左到右
相等 == != 左到右
按位AND & 左到右
按位XOR ^ 左到右
按位OR 左到右
邏輯AND && 左到右
邏輯OR 左到右
條件 ?: 右到左
分配 = += -= *= /= %=>>= <<= &= ^= = 右到左
逗號 , 左到右

示例

嘗試以下示例來瞭解Go編程語言中提供的其他運算符:

package main

import "fmt"

func main() {
   var a int = 20
   var b int = 10
   var c int = 15
   var d int = 5
   var e int;

   e = (a + b) * c / d;      // ( 30 * 15 ) / 5
   fmt.Printf("Value of (a + b) * c / d is : %d\n",  e );

   e = ((a + b) * c) / d;    // (30 * 15 ) / 5
   fmt.Printf("Value of ((a + b) * c) / d is  : %d\n" ,  e );

   e = (a + b) * (c / d);   // (30) * (15/5)
   fmt.Printf("Value of (a + b) * (c / d) is  : %d\n",  e );

   e = a + (b * c) / d;     //  20 + (150/5)
   fmt.Printf("Value of a + (b * c) / d is  : %d\n" ,  e );
}

當編譯和執行上面程式,它產生以下結果:

Value of (a + b) * c / d is : 90
Value of ((a + b) * c) / d is  : 90
Value of (a + b) * (c / d) is  : 90
Value of a + (b * c) / d is  : 50

上一篇: Go語言運算符 下一篇: Go語言條件和決策