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, 則取原始值對應(yīng)的二進制位的數(shù)值,如果為1,則對應(yīng)位的值為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ù)的可選參數(shù),本文將對其進行講解,準備好了嗎,快跟隨著本文一探究竟吧2023-06-06
go語言中結(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

