go語言裡面的運算符号包含了算術運算符,邏輯運算符,和位運算符。
算術運算符
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SO4QzMzEDM3cDO0MTN2ImZyYzXyUjNzcTM2EzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
程式中+号的使用
1)當左右兩邊都是數值型時,則做加法運算
2)當左右兩邊都是字元串,則做字元串拼接
var i = "1"
var j = "2"
sum := i + j
fmt.Println(sum)
12
⽐較運算符
對于某些特殊類型的是否可以比較,比如切片。
在其他語言裡面,數組是引用類型,不是一個值類型,用==号在比較的時候是比較兩個數組的引用,而不是比較裡面的值是否相同。這一點在go語言裡面是不一樣的,如果兩個數組的維數相同是可以比較的。
⽤ ==
⽐較數組
- 相同維數且含有相同個數元素的數組才可以⽐較(如果長度不一樣數組比較就會出現編譯錯誤)
- 每個元素都相同的才相等
var array1 = [5]int{1,2,3,4,6}
var array2 = [5]int{1,2,3,4,6}
println(array1 == array2)
true
邏輯運算符
位運算符
按位清0運算符
與其他主要程式設計語⾔的差異
&^ 按位置零
1 &^ 0 -- 1
1 &^ 1 -- 0
0 &^ 1 -- 0
0 &^ 0 -- 0
對于左右兩個操作數來說,隻要右邊的操作數為1,那麼無論左邊的位上的數字為0還是為1,那麼結果都為0。
const(
Readable = 1 << iota // 1
Writeable // 10
Executable // 100
)
func main() {
fmt.Println(Readable,Writeable,Executable)
a := 7 //0111
fmt.Println(a&Readable == Readable,a&Writeable == Writeable,a&Executable == Executable)
}
1 2 4
true true true
const(
Readable = 1 << iota // 1
Writeable // 10
Executable // 100
)
func main() {
fmt.Println(Readable,Writeable,Executable)
a := 7 //0111
a = a&^ Readable
fmt.Println(a) //110
fmt.Println(a&Readable == Readable,a&Writeable == Writeable,a&Executable == Executable)
}
1 2 4
6
false true true