Skip to content

Go數據類型

下面列出 Go 語言中全部的內置類型,以供參考,更多細節可以前往參考手冊-類型

布爾類型

布爾類型只有真值和假值。

類型描述
booltrue為真值,false為假值

TIP

在 Go 中,整數 0 並不代表假值,非零整數也不能代表真值,即數字無法代替布爾值進行邏輯判斷,兩者是完全不同的類型。

整型

Go 中為不同位數的整數分配了不同的類型,主要分為無符號整型與有符號整型。

序號類型和描述
uint8無符號 8 位整型
uint16無符號 16 位整型
uint32無符號 32 位整型
uint64無符號 64 位整型
int8有符號 8 位整型
int16有符號 16 位整型
int32有符號 32 位整型
int64有符號 64 位整型
uint無符號整型 至少 32 位
int整型 至少 32 位
uintptr等價於無符號 64 位整型,但是專用於存放指針運算,用於存放死的指針地址。

浮點型

IEEE-754浮點數,主要分為單精度浮點數與雙精度浮點數。

類型類型和描述
float32IEEE-754 32 位浮點數
float64IEEE-754 64 位浮點數

復數類型

類型描述
complex12864 位實數和虛數
complex6432 位實數和虛數

字符類型

go 語言字符串完全兼容 UTF-8

類型描述
byte等價 uint8 可以表達 ANSCII 字符
rune等價 int32 可以表達 Unicode 字符
string字符串即字節序列,可以轉換為[]byte類型即字節切片

派生類型

類型例子
數組[5]int,長度為 5 的整型數組
切片[]float64,64 位浮點數切片
映射表map[string]int,鍵為字符串類型,值為整型的映射表
結構體type Gopher struct{},Gopher 結構體
指針*int,一個整型指針。
函數type f func(),一個沒有參數,沒有返回值的函數類型
接口type Gopher interface{},Gopher 接口
通道chan int,整型通道

零值

官方文檔中零值稱為zero value,零值並不僅僅只是字面上的數字零,而是一個類型的空值或者說默認值更為准確。

類型零值
數字類型0
布爾類型false
字符串類型""
數組固定長度的對應類型的零值集合
結構體內部字段都是零值的結構體
切片,映射表,函數,接口,通道,指針nil

nil

nil類似於其它語言中的none或者null,但並不等同。nil僅僅只是一些引用類型的零值,並且不屬於任何類型,從源代碼中的nil可以看出它僅僅只是一個變量。

go
var nil Type

並且nil == nil這樣的語句是無法通過編譯的。

Golang學習網由www.golangdev.cn整理維護