1. 程式人生 > >【Golang 基礎】Go 語言的操作符

【Golang 基礎】Go 語言的操作符

Go 語言的運算子 (示例程式碼

算術運算子

  • +:相加;
  • -:相減;
  • *:相乘;
  • /:相除;
  • %:求餘;
  • ++:自增;
  • --:自減;

其中,++--不能用於賦值表示式, 如: count2 := count++;並且在 Go 語言中,不存在如:++count表示式

關係運算符

  • ==:檢查兩個值是否相等,如果相等返回 true,否則返回 false
  • !=:檢查兩個值是否不相等,如果不相等返回 true,否則返回 false
  • >:檢查左邊值是否大於右邊值,如果是返回 true,否則返回 false
  • <:檢查左邊值是否小於右邊值,如果是返回 true,否則返回 false
  • >=:檢查左邊值是否大於等於右邊值,如果是返回 true,否則返回 false
  • <=:檢查左邊值是否小於等於右邊值,如果是返回 true,否則返回 false

邏輯運算子

  • &&:邏輯 AND運算子。如果兩邊的運算元都是 true,則條件為 true,否則為 false
  • ||:邏輯 OR運算子。如果兩邊的運算元有一個 true,則條件為 true,否則為 false
  • !:邏輯 NOT運算子。如果條件為 true,則邏輯 NOT新增為 true,否則為 false

位運算子

位運算子是對整數在記憶體中的二進位制進行操作。

  • &:按位與運算子。其功能是參與運算的兩個數的二進位制按位對齊,當對應位都為 1 時,才返回 1
fmt.Println(3 & 4)  // 0

// 計算過程
//   0011     => 3 的二進位制
//   0100     => 4 的二進位制
// &
// ---------------------------
//   0000     => 0 的二進位制
  • |:按位或運算子。其功能是參與運算的兩個數的二進位制按位對齊,當對應位中只要有一位是 1,就返回 1
fmt.Println(3 | 4) // 7

// 計算過程
//   0011     => 3 的二進位制
//   0100     => 4 的二進位制
// &
// ---------------------------
//   0111     => 7 的二進位制
  • ^:按位異或運算子。其是參與運算的兩個數的二進位制按位對齊,當對應位有一位是 1,就返回 1;如果對應兩位都是 1 或 0,就返回 0
fmt.Println(25 ^ 3) // 26

// 計算過程
//   0001 1001     => 25 的二進位制
//   0000 0011     => 3 的二進位制
// ^
// ---------------------------
//   0001 1010     => 26 的二進位制
  • <<:左移運算子。其功能是將數值的二進位制所有位向左移動指定的位數
fmt.Println(3 << 3) // 24

// 計算過程
//      0000 0011     => 3 的二進位制
//              3
// <<      
// ---------------------------
//      0001 1000     => 24 的二進位制
  • >>:右移運算子。其功能是將數值的二進位制所有位向右移動指定的位數
fmt.Println(3 >> 3) // 0

// 計算過程
//      0000 0011     => 3 的二進位制
//              3
// >>      
// ---------------------------
//      0000 0000     => 0 的二進位制

賦值運算子

  • =:簡單的賦值運算子,將一個表示式的值賦給一個左值;
  • +=:相加後再賦值;
  • -=:相減後再賦值;
  • *=:相乘後再賦值;
  • /=:相除後再賦值;
  • %=:取餘後再賦值;
  • &=:按位與後賦值;
  • |=:按位或後賦值;
  • ^=:按位異或後賦值;
  • <<=:左位移後賦值;
  • >>=:右位移後賦值;