Go開發之路 -- Go語言基本語法
一. 變量
1.1 變量的聲明
Go 語言的每一個變量都擁有自己的類型,必須經過聲明才能開始用。
標準格式:
var 變量名 變量類型
變量的聲明以關鍵字 var 開頭,行尾不需要寫分號
常見變量的數據類型有:整型、浮點型、布爾型、結構體等。
例如:
var a int var b string var c []float32 var d func() bool var e struct{ x int }
代碼說明:
- 第1行,聲明一個整型類型的變量,可以保存整數數值。
- 第2行,聲明一個字符串類型的變量。
- 第3行,聲明一個 32 位浮點切片類型的變量,浮點切片表示由多個浮點類型組成的數據結構。
- 第4行,聲明一個返回值為布爾類型的函數變量,這種形式一般用於回調函數,即將函數以變量的形式保存下來,在需要的時候重新調用這個函數。
- 第5行,聲明一個結構體類型的變量,這個結構體擁有一個整型的 x 字段。
優雅格式聲明(推薦):
var ( a int b string c []float32 d func() bool e struct { x int } )
使用關鍵字var和括號,可以將一組變量定義放在一起。
1.2 變量的初始化
變量的聲明可以包含初始值,每一個變量對應一個值。
如果初始化值已存在,則可以省略類型;變量會從初始值中獲得類型。
變量初始化的標準格式:
var 變量名 類型 = 表達式
簡化形式:
var 變量名 = 表達式
例如:
var x int = 100
可以寫成:
var x = 100
默認值:
沒有明確初始值的變量聲明會被賦予它們一個默認值:
整型和浮點型變量的默認值為 0。
字符串變量的默認值為空字符串。
布爾型變量默認為 bool。
切片、函數、指針變量的默認為 nil。
1.3 短變量聲明並初始化
在函數中,簡潔賦值語句 := 可在類型明確的地方代替 var 聲明。
註意:函數外的每個語句都必須以關鍵字開始(var
等),因此 :=
結構不能在函數外使用。
例如:
x := 100
編譯器會自動根據右值類型推斷出左值的對應類型。
註意:由於使用了 :=
,而不是賦值的 =
,因此推導聲明寫法的左值變量必須是沒有定義過的變量。若定義過,將會發生編譯錯誤。
註意:在多個短變量聲明和賦值中,至少有一個新聲明的變量出現在左值中,即便其他變量名可能是重復聲明的,編譯器也不會報錯,例如:
x, z := a, b y, z := a, b
1.4 多個變量同時賦值
使用Go的“多重賦值特性”,可以輕松完成變量交換的任務。
package main import "fmt" func main() { var a = 100 var b = 200 a, b = b, a fmt.Println(a, b) }
多重賦值時,變量的左值和右值按從左到右的順序賦值。
1.5 匿名變量(_)
在使用多重賦值時,如果不需要在左值中接收變量,可以使用匿名變量。
匿名變量用一個下劃線 _ 來表示
,使用匿名變量時,只需要在變量聲明的地方使用下劃線替換即可。例如:
var a int a, _ = 100, 200
註意:匿名變量不占用命名空間,不會分配內存。匿名變量與匿名變量之間也不會因為多次聲明而無法使用。
二. 常量
常量是恒定不變的值,例如圓周率。
常量的聲明與變量類似,只不過是使用 const 關鍵字。
常量可以是字符、字符串、布爾值和數值。
常量不能用 := 語法聲明。
常量的聲明, 例如:
const pi = 3.1415926
註意:常量在聲明的時候必須賦值。
多個變量可以一起聲明,類似的,多個變量也可以一起聲明。例如:
const ( pi = 3.1415926 e = 2.718281 )
三. 數據類型
四. 數據類型的轉換
Go開發之路 -- Go語言基本語法