天天看點

Go 變量 運算符

go語言裡面的運算符号包含了算術運算符,邏輯運算符,和位運算符。

算術運算符

Go 變量 運算符

程式中+号的使用

1)當左右兩邊都是數值型時,則做加法運算

2)當左右兩邊都是字元串,則做字元串拼接

var i = "1"
  var j = "2"
  sum := i + j
  fmt.Println(sum)

12      

⽐較運算符

Go 變量 運算符

對于某些特殊類型的是否可以比較,比如切片。

在其他語言裡面,數組是引用類型,不是一個值類型,用==号在比較的時候是比較兩個數組的引用,而不是比較裡面的值是否相同。這一點在go語言裡面是不一樣的,如果兩個數組的維數相同是可以比較的。

⽤ ==

⽐較數組

  • 相同維數且含有相同個數元素的數組才可以⽐較(如果長度不一樣數組比較就會出現編譯錯誤)
  • 每個元素都相同的才相等
var array1 = [5]int{1,2,3,4,6}
  var array2 = [5]int{1,2,3,4,6}

  println(array1 == array2)

true      

邏輯運算符

Go 變量 運算符

位運算符

Go 變量 運算符

按位清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