運算符
目錄
Go基礎入門 - 系列文
5: ➫
05: 本節課是 Go 運算符和格式化字串(Format Verbs)的基本介紹。
運算符#
1. 基本算術運算符#
- 加、減、乘、除:這些運算符用於基本四則運算。
- 餘(Modulus):使用
%
符號,例如8 % 3
結果為 2。fmt.Println(5 + 3) // 輸出: 8 fmt.Println(5 - 3) // 輸出: 2 fmt.Println(5 * 3) // 輸出: 15 fmt.Println(5 / 3) // 輸出: 1 fmt.Println(8 % 3) // 輸出: 2
2. 自增和自減運算符#
- 自增(
i++
):等同於i = i + 1
。 - 自減(
i--
):等同於i = i - 1
。 - 在 Go 中,自增和自減只能作為獨立語句,不能作為表達式的一部分。
var i int i++ fmt.Println(i) // 輸出: 1 i-- fmt.Println(i) // 輸出: 0
3. 二進制位運算符#
- 位移運算符:
- 右移(
>>
):例如b >> 2
,將二進制位向右移動指定位數。 - 左移(
<<
):例如b << 2
,將二進制位向左移動指定位數。
- 右移(
- 按位運算符:
- 按位與(
&
):兩位均為1時結果為1。 - 按位或(
|
):兩位有一個為1時結果為1。 - 按位異或(
^
):兩位不同時結果為1。
var b uint = 3 // 11 in binary fmt.Println(b >> 1) // 輸出: 1 (11 -> 1) fmt.Println(b << 1) // 輸出: 6 (11 -> 110) fmt.Println(b & 2) // 輸出: 2 (11 & 10 -> 10) fmt.Println(b | 2) // 輸出: 3 (11 | 10 -> 11) fmt.Println(b ^ 2) // 輸出: 1 (11 ^ 10 -> 01)
- 按位與(
4. 賦值運算符#
- 加等(
+=
)、減等(-=
)、乘等(*=
)等:這些都是賦值和算術操作的簡寫,例如b += 3
等同於b = b + 3
。var b int = 1 b += 3 fmt.Println(b) // 輸出: 4 b -= 2 fmt.Println(b) // 輸出: 2 b *= 2 fmt.Println(b) // 輸出: 4
5. 比較運算符#
- 包括大於(
>
)、小於(<
)、等於(==
)、不等於(!=
)等。 - 比較操作返回布林值,表示比較結果。
fmt.Println(5 > 3) // 輸出: true fmt.Println(5 < 3) // 輸出: false fmt.Println(5 == 5) // 輸出: true fmt.Println(5 != 3) // 輸出: true
6. 邏輯運算符#
- 與(
&&
)、或(||
)、非(!
)。 - 用於布林值的邏輯操作,例如
bool1 && bool2
。fmt.Println(true && false) // 輸出: false fmt.Println(true || false) // 輸出: true fmt.Println(!true) // 輸出: false
7. 特殊運算符#
- 取址符(
&
):用於獲取變量的內存地址。 - 取值符(
*
):用於訪問指標指向的變量。var a int = 10 var p *int = &a fmt.Println(*p) // 輸出: 10
8. 運算符的優先級#
- 如果不確定運算符優先級,可以使用括號(
()
)來明確運算順序。 - 運算符優先級從高到低依次為:括號、取地址、乘除餘、加減等。
fmt格式化字串(Format Verbs)#
1. 通用格式化字串#
%v
:用於輸出變量的值(value)。%T
:用於輸出變量的數據類型(type)。%%
:用於輸出百分號。var i int = 5 fmt.Printf("%v, %T\n", i, i) // 輸出: 5, int
2. 整數格式化#
%b
:二進制表示,無前綴。%o
:八進制表示,無前綴。%d
:十進制表示。%x
:小寫字母的十六進制表示。%X
:大寫字母的十六進制表示。%U
:Unicode格式表示,如 U+1234。%c
:該碼值對應的字符。%q
:單引號包圍的字符。var i int = 42 fmt.Printf("%b, %o, %d, %x, %X, %U, %c, %q\n", i, i, i, i, i, i, i, i) // 輸出: 101010, 52, 42, 2a, 2A, U+002A, *, '*
3. 浮點數格式化#
%f
:默認的浮點數表示。%.2f
:保留兩位小數的浮點數。%9.2f
:最小寬度9,保留兩位小數。%e
或%E
:科學計數法表示的浮點數。%g
或%G
:根據數值大小選擇%e
或%f
來格式化。%b
:科學計數法的二進制表示。var f float64 = 3.14159 fmt.Printf("%f, %.2f, %9.2f, %e, %E, %g, %b\n", f, f, f, f, f, f, f) // 輸出: 3.141590, 3.14, 3.14, 3.141590e+00, 3.141590E+00, 3.14159, 6946802425218994p-49
4. 布林類型格式化#
%t
:布林值的默認表示(true 或 false)。var truth = true fmt.Printf("%t\n", truth) // 輸出: true
5. 字符串和byte切片格式化#
%s
:普通字符串。%q
:雙引號包圍的字符串。%x
:小寫的十六進制表示的字符串。%X
:大寫的十六進制表示的字符串。var str = "Hello, Go!" fmt.Printf("%s\n", str) // 輸出: Hello, Go! fmt.Printf("%q\n", str) // 輸出: "Hello, Go!" fmt.Printf("%x\n", str) // 輸出: 48656c6c6f2c20476f21 fmt.Printf("%X\n", str) // 輸出: 48656C6C6F2C20476F21
6. 指標格式化#
%p
:0x開頭的十六進制表示的指標地址。var num = 42 fmt.Printf("%p\n", &num) // 輸出: 0x地址 (地址會因執行而異)
Go基礎入門 - 系列文
5: ➫
相關文章
基本資料型別
06: 本節課是 Go 基本資料類型與指標概念的介紹。
組合型別
07: 本節課介紹了 Go 組合型別:陣列、slice和map的操作與遍歷。
結構體
08: 本節課介紹 Go 自定義數據類型與結構體的使用。並可模擬物件導向中的一些特性。