本章節關鍵詞
- 變量類型寫在變量後
- 編譯器可推測變量類型
- 沒有char,只有rune(專門節講解)
- 原生支持複數類型
3.1 內建變量類型
- bool,string
- 整數 (u)int, (u)int8, (u)int16 ,(u)int32, (u)int64, uintptr(指針) 加u無符號整數,不加u有符號整數;有符號整數分兩類:規定長度的,不規定長度的(跟系統來,32位系統爲32,64位系統爲64)
- byte ,rune(字符型) (長度32位)
- 浮點數:float32,float64,complex64,complex128 complex64的實部和虛部都是float32,complex128的實部和虛部都是float64。
3.2 變量定義
3.2.1方法內變量定義
var 和 ":=",遵循名稱在前類型在後的規則,變量類型可省略,變量定義必有初值(系統自動),變量定義後必須用到。
- var c string = "abc"
- c string := "abc"
- c := "abc"
- var c string //系統自動初始化 ""
3.2.2 包內變量定義
包內定義只能用var關鍵字,不能使用 ":="
1.
var aa = 11
2.
var (
ss = true
bb = "abc"
)
3.3 常量定義
常量定義用關鍵字const,go常量不用const不定義類型可以供多個類型使用,定義了類型,只能用一個類型使用,定義常量有一個好用的關鍵字 iota。
1.
const a string = "abc"
2.
const (
filename = "abc.txt"
b, c = 3, 4
)
3.
const (
cpp = iota
_
apex
java = 1
python = 2
golang = 3
)
4.
const (
b = 1 << (10 * iota)
kb
mb
gb
tb
pb
)
iota是golang語言的常量計數器,只能在常量的表達式中使用。iota在const關鍵字出現時將被重置爲0(const內部的第一行之前),const中每新增一行常量聲明將使iota計數一次(iota可理解爲const語句塊中的行索引)。使用iota能簡化定義,在定義枚舉時很有用。