在Go規范,^這個運算符在一元運算符和二元運算符中都出現了。那么他們分別是啥?
在規范中說道:^ bitwise XOR integers
這是按位異或。
Go語言位操作實例
<!-- lang: cpp --> package main import ( "fmt" ) // 獲取0-n之間的所有偶數 func even(a int) (array []int) { for i := 0; i < a; i++ { if i&1 == 0 { // 位操作符&與C語言中使用方式一樣 array = append(array, i) } } return array } // 互換兩個變量的值 // 不需要使用第三個變量做中間變量 func swap(a, b int) (int, int) { a ^= b // 異或等於運算 b ^= a a ^= b return a, b } // 左移、右移運算 func shifting(a int) int { a = a << 1 a = a >> 1 return a } // 變換符號 func nagation