Go 語言學習之運算符
01
算術運算符
算術運算符有加號(+)、減號(-)、乘號(*)、除號(/)、取餘(%),我們聲明兩個變量 a 和 b,並分別賦值 10 和 5,通過代碼,我們演示算術運算符的用法。
func main() {
a := 10
b := 5
fmt.Println("a + b = ", a+b)
fmt.Println("a - b = ", a-b)
fmt.Println("a * b = ", a*b)
fmt.Println("a / b = ", a/b)
fmt.Println("a % b = ", a%b)
}
02
++ 和 --
自增和自減不是運算符,只能作爲獨立語句使用,不能用於表達式,不能放在變量名前面使用。通過代碼,我們演示 ++ 和 -- 的用法。
func main() {
a := 10
b := 5
a++
b--
fmt.Println("a++:", a)
fmt.Println("b--:", b)
03
賦值運算符
爲了簡化表達式,與大多數語言相同,Go 語言也提供了一些賦值運算符,有等號(=)、加等(+=)、減等(-=)、乘等(*=)、除等(/*)、取餘等(%=),通過代碼,我們演示賦值運算符的用法。
func main() {
aa := 50
aa += 10
fmt.Println("aa = ", aa)
bb := 50
bb -= 10
fmt.Println("bb = ", bb)
cc := 50
cc *= 10
fmt.Println("cc = ", cc)
dd := 50
dd /= 10
fmt.Println("dd = ", dd)
ff := 50
ff %= 10
fmt.Println("ff = ", ff)
}
04
關係運算符
關係運算符主要用於流程控制語句中,在 Go 語言中,關係運算符有大於(>)、小於(<)、大於等於(>=)、小於等於(<=)、等於等於(==)和不等於(!=),通過代碼,我們演示關係運算符的用法。
func main() {
if a > 5 && b > 5 {
fmt.Println("a > 5 且 b > 5")
}
if a > 5 || b > 5 {
fmt.Println("a > 5 或 b > 5")
}
if a > 5 && b >= 5 {
fmt.Println("a > 5 且 b >= 5")
}
if a == b {
fmt.Println("a == b")
}
if a != b {
fmt.Println("a != b")
}
boolean := false
if !boolean {
fmt.Println("非假既真")
}
}
05
邏輯運算符
邏輯運算符,同樣主要用於流程控制語句中,在 Go 語言中,邏輯運算符有且(&&)、或(||)、非(!),代碼演示同上面的關係運算符代碼。
06
& 和 *
取地址符(& ) 和指針運算符 (* ),不是所有對象都能進行取地址操作, 但是變量 總 是能正確返回 地址。 指針 運算符在等號左邊 時, 可以更新目標對象, 在等號右邊時, 可以獲取目標對象。通過代碼,我們演示取地址符和指針運算符的用法。
func main() {
x := 50
y := &x
*y++
z := *y
fmt.Println("y = ", y)
fmt.Println("x = ", x)
fmt.Println("z = ", z)
}
07
位運算符
位運算符是對整數在內存中的二進制位進行操作。因爲篇幅原因,本文我們不對位運算符做過多的介紹,在工作中,個人建議儘量少用或不用位運算符,原因是代碼可讀性不好。如果你對位運算符感興趣,可自行查閱相關資料。
08
優先級
最後,我們來介紹一下運算符的優先級,一元運算符的優先級最高,二元運算符的優先級分五個級別,從高往低分別是:
>> |
<= |
相同優先級的二元運算符,從左往右依次計算。此外,我們還可以使用小括號提升某個表達式中運算符的優先級。
完整代碼:
輸出結果:
a + b = 15
a - b = 5
a * b = 50
a / b = 2
a % b = 0
a++: 11
b--: 4
aa = 60
bb = 40
cc = 500
dd = 5
ff = 0
a > 5 或 b > 5
a != b
非假既真
y = 0xc0000b4070
x = 51
z = 51