運算符
目錄
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 自定義數據類型與結構體的使用。並可模擬物件導向中的一些特性。