1. 變量
1.1 變量聲明
變量聲明的標準格式:
var <變量名稱> <變量類型>
變量名稱的首字母大小寫則決定該變量可否被外部引入,變量類型Go語言中支持很多種比如常見的int、string、bool、byte、float32等。
除了標準格式的聲明外,還有兩種帶初始化的變量聲明:
var <變量名稱> = <變量值>
,會根據初始化變量具體的值來確定變量的類型,且使用范圍沒有限制;
<變量名稱> := <變量值>
,簡短模式的變量聲明且帶有顯式初始化,不過這種方法僅限于在函數內部使用;
另外,變量的聲明還支持如下的使用形式:
// 同時聲明同一類型的多個變量
var a, b int
// 支持批次聲明
var (
a int
b string
help bool
array0 [10]int
slice0 []int
)
1.2 變量初始化
關于變量的初始化方法其實上面變量聲明中已經基本上都已經涉及到了,還要一種對應標準格式的初始化方法:
var <變量名稱> <變量類型> = <變量值>
最后注意,一旦變量被聲明之后,在Go的內存中其實都已經被初始化了,系統自動賦予它該類型的零值:int 為 0,float 為 0.0,bool 為 false,string 為空字符串,指針為 nil等。
2 常量
go語言的常量通常使用const
關鍵字來聲明,并且常量的數據類型只可以是布爾型、數字型和字符串型,一般的定義格式如下:
const 變量名稱 [變量類型] = 變量值
,跟變量相比,一般常量除了由關鍵字var
--> const
外,定義規則基本上跟變量保持一致,另外常量還支持枚舉類型,比如:
const (
UNKNOWN = 400
SUCCESS = 200
ERROR = 500
)
并且常量可以用函數計算表達式的值,不過這些函數必須是go的內置函數,否則編譯不過。
特殊常量iota
常量聲明可以使用 iota 常量生成器初始化,它用于生成一組以相似規則初始化的常量,但是不用每行都寫一遍初始化表達式。在一個 const 聲明語句中,在第一個聲明的常量所在的行,iota 將會被置為 0,然后在每一個有常量聲明的行加一,下面看幾個相關的例子:
- Example1
const (
a = iota //a=0
b //b=1
c //c=2
d //d=3
e = "welcome"
f
g = iota
h
i
)
- Example2
const (
a = 1 << iota // a=1
b = 3 << iota // b=6
c //c=12
d //d=24
)