GO 之運算符號的具體使用
算術(shù)運算符:
二元的運算符:+ - * / %
四則運算沒啥好說的,從小就開始學習,最后一個 % 表示 求余數(shù)或者取模運算。
package main import "fmt" func main() { a := 1 + 2 b := a - 1 c := a * b d := c / a e := c % 3 fmt.Println("a := 1 + 2 的結(jié)果是:", a) fmt.Println("b := a - 1 的結(jié)果是:", b) fmt.Println("c := a * b 的結(jié)果是:", c) fmt.Println("d := c / a 的結(jié)果是:", d) fmt.Println("e := c % 3 的結(jié)果是:", e) }
一元運算符:++ --
自增(
++
):將變量的值增加 1。自減(
--
):將變量的值減少 1。它們只能作為獨立的語句使用,不能出現(xiàn)在表達式中。例如,
a = b++
或c = --d
這樣的寫法在 Go 語言中是不允許的。
package main import "fmt" func main() { var i int = 1 i++ fmt.Println("i++ 的結(jié)果:", i) i-- fmt.Println("i-- 的結(jié)果:", i) }
關(guān)系運算符
關(guān)系運算符是用于比較兩個操作數(shù)的值,并返回一個布爾值。
package main import "fmt" func main() { var a int = 10 var b int = 20 fmt.Println("a == b : ", a, b, a == b) fmt.Println("a != b : ", a, b, a != b) fmt.Println("a > b : ", a, b, a > b) fmt.Println("a < b : ", a, b, a < b) fmt.Println("a >= b : ", a, b, a >= b) fmt.Println("a <= b : ", a, b, a <= b) }
邏輯運算符
邏輯運算符的操作數(shù)是布爾表達式,即表達式的結(jié)果是 true 或 false。C語言里面,表達式的值如果是零值則為false,非零值則為true。在這里行不通了,必須是操作的必須是布爾表達式,不能直對一個變量進行判斷了?。?!
package main import "fmt" func main() { a := true b := false c := true d := false fmt.Println("邏輯與(&&)運算:") fmt.Println(a, b, a && b) fmt.Println(a, c, a && c) fmt.Println(a, d, a && d) fmt.Println(b, d, b && d) fmt.Println("邏輯或(||)運算:") fmt.Println(a, b, a || b) fmt.Println(a, c, a || c) fmt.Println(a, d, a || d) fmt.Println(b, d, b || d) fmt.Println("邏輯非(!)運算:") fmt.Println(a, !a) fmt.Println(b, !b) }
位運算符
位運算就是將一個變量存放的數(shù)值轉(zhuǎn)換成二進制的01表示的形式,然后再對每一個二進制位進行計算。主要包括 按位與(&)、按位或(|)、按位(^) 和 位清空(&^)。
- 按位與(&) :相同位置的二進制數(shù)值,全為1,則值為1,否則為 0
- 按位或(|):相同位置的二進制數(shù)值,全為0,則值為0,否則為 1
- 按位(^):相同位置的二進制數(shù)值,不同,則值為1,否則為 0
- 按位清空(&^):
第一種解釋方法:
這里其實有個概念我給補充一下,=前面的值可以成為原始值,后面的值成為掩碼,這么一來就好解釋了。對于掩碼來說如果二進制位的值為 0, 則取原始值對應的二進制位的數(shù)值,如果為1,則對應位的值為0
第二種解釋方法:
我自己親自計算了幾次結(jié)果都正確,數(shù)值及算法,幫助理解。
a &^ = b 相當于 a = a & b ^ a 也相當于 a ^ b & a
package main import "fmt" func main() { a := 10 b := 11 fmt.Println(a, " & ", b, "=", a & b) fmt.Println(a, " | ", b, "=", a | b) fmt.Println(a, " ^ ", b, "=", a ^ b) fmt.Println(a, " &^ ", b, "=", a &^ b) }
賦值運算符
賦值運算符是最常用的運算符了,其功能就是修改已經(jīng)聲明過的變量所存放的內(nèi)容。賦值運算符也有很多結(jié)合算術(shù)、邏輯、位運算符的用法,思路都是一樣的,以 += 為例。例如計算 a += 1, 可以等價于 a = a + 1,即先計算 a + 1 的值,再將 a + 1 的結(jié)果,放入 a 中。
package main import "fmt" func main() { var a int a = 10 fmt.Println("執(zhí)行 a = 10 后 : a = ", a) a += 10 fmt.Println("執(zhí)行 a += 10 后 : a = ", a) a -= 1 fmt.Println("執(zhí)行 a -= 1 后 : a = ", a) a *= 2 fmt.Println("執(zhí)行 a *= 2 后 : a = ", a) a /= 3 fmt.Println("執(zhí)行 a /= 3 后 : a = ", a) a %= 10 fmt.Println("執(zhí)行 a %= 10 后 : a = ", a) a <<= 1 fmt.Println("執(zhí)行 a <<= 1 后 : a = ", a) a >>= 1 fmt.Println("執(zhí)行 a >>= 1 后 : a = ", a) a &= 10 fmt.Println("執(zhí)行 a &= 10 后 : a = ", a) a |= 10 fmt.Println("執(zhí)行 a |= 10 后 : a = ", a) a ^= 10 fmt.Println("執(zhí)行 a %= 10 后 : a = ", a) a %= 10 fmt.Println("執(zhí)行 a %= 10 后 : a = ", a) a %= 10 fmt.Println("執(zhí)行 a %= 10 后 : a = ", a) }
到此這篇關(guān)于GO 之運算符號的具體使用的文章就介紹到這了,更多相關(guān)GO 運算符號內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Go中的函數(shù)選項模式(Functional Options Pattern)詳解
在 Go 語言中,函數(shù)選項模式是一種優(yōu)雅的設計模式,用于處理函數(shù)的可選參數(shù),本文將對其進行講解,準備好了嗎,快跟隨著本文一探究竟吧2023-06-06go語言中結(jié)構(gòu)體tag使用小結(jié)
Go語言是一種靜態(tài)類型、編譯型的編程語言,其中結(jié)構(gòu)體是一種非常重要的數(shù)據(jù)類型,本文就來介紹一下go語言中結(jié)構(gòu)體tag使用,具有一定的參考價值,感興趣的可以了解一下2023-10-10詳解Go如何基于現(xiàn)有的context創(chuàng)建新的context
在?Golang?中,context?包提供了創(chuàng)建和管理上下文的功能,那么在GO語言中如何基于現(xiàn)有的context創(chuàng)建新的context,下面小編就來和大家詳細聊聊2024-01-01