go語言學習(五、運算符)

運算符用於在程序運行時執行數學或邏輯運算 Go 語言內置的運算符有:

  • 算術運算符
  • 關係運算符
  • 邏輯運算符
  • 位運算符
  • 賦值運算符
  • 其他運算符

算術運算符:

package main

import "fmt"

func main() {
	a, b := 10, 20
	fmt.Println(a + b) // 30
	fmt.Println(a - b) // -10
	fmt.Println(a * b) // 200
	fmt.Println(a / b) // 0 整數運算導致 如果想得到0.5 那麼a和b其中一個 需要是浮點數
	fmt.Println(a % b) // 10
	a++
	fmt.Println(a) // 11
	a--
	fmt.Println(a) // 10
}

關係運算符 返回值爲bool

package main

import "fmt"

func main() {
	a, b := 10, 20
	fmt.Println(a == b) // false
	fmt.Println(a != b) // true
	fmt.Println(a > b)  // false
	fmt.Println(a < b)  // true
	fmt.Println(a >= b) // false
	fmt.Println(a <= b) // true
}

邏輯運算符 返回值爲bool

package main

func main() {
	a, b := false, true
	fmt.Println(a && b) // 邏輯與 兩個都爲真才爲真 false
	fmt.Println(a || b) // 邏輯或 一個爲真就爲真 true
	fmt.Println(!a) // 邏輯取反 true
}


位運算符 對整數在內存中的二進制位進行操作

package main

import "fmt"

func main() {
	a, b := 1, 2
	// 按位與運算符"&"是雙目運算符。 其功能是參與運算的兩數各對應的二進位相與
	// 1的二進制爲 0000 0001 2的二進制爲 0000 0010 按位與 爲 0000 0000
	// 輸出0
	fmt.Println(a & b)

	// 按位或運算符"|"是雙目運算符。 其功能是參與運算的兩數各對應的二進位相或
	// 1的二進制爲 0000 0001 2的二進制爲 0000 0010 按位或 爲 0000 0011
	// 輸出3
	fmt.Println(a | b)

	// 按位異或運算符"^"是雙目運算符。 其功能是參與運算的兩數各對應的二進位相異或
	// 1的二進制爲 0000 0001 2的二進制爲 0000 0010 按位相異或 爲 0000 0011
	// 輸出3
	fmt.Println(a ^ b)

	// 左移運算符"<<"是雙目運算符。左移n位就是乘以2的n次方
	// 1的二進制爲 0000 0001 左移兩位 就是0000 0100
	// 輸出4
	fmt.Println(a << 2)

	// 右移運算符">>"是雙目運算符。右移n位就是除以2的n次方
	// 1的二進制爲 0000 0001 右移兩位 就是0000 0000
	// 輸出0
	fmt.Println(a >> 2)
}

賦值運算符

package main

import "fmt"

func main() {
	a, b := 10, 20
	a = 30
	fmt.Println(a) // 30
	a += b
	fmt.Println(a) // 50
	a -= b
	fmt.Println(a) // 30
	a *= b
	fmt.Println(a) // 600
	a /= b
	fmt.Println(a) // 30
	a %= b
	fmt.Println(a) // 10
}

其他運算符

package main

import "fmt"

func main() {
	a := 4
	var ptr *int
	ptr = &a
	fmt.Println(&a)   // 返回變量內存地址 0xc00000a0c8
	fmt.Println(*ptr) // 指針變量 根據內存地址獲取變量值 4
}

運算符優先級 5爲最高 你可以通過使用括號來臨時提升某個表達式的整體運算優先級

優先級 運算符
5 * / % << >> & &^
4 + -
3 == != < <= > >=
2 &&
1 ||
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章