# Go 語言數據類型
在 Go 編程語言中,數據類型用于聲明函數和變量。
數據類型的出現是為了把數據分成所需內存大小不同的數據,編程的時候需要用大數據的時候才需要申請大內存,就可以充分利用內存。
Go 語言按類別有以下幾種數據類型:
| 序號 | 類型和描述 |
| --- | --- |
| **布爾型** | 布爾型的值只可以是常量 true 或者 false。一個簡單的例子:var b bool = true。 |
| **數字類型** | 整型 int 和浮點型 float,Go 語言支持整型和浮點型數字,并且原生支持復數,其中位的運算采用補碼。 |
| **字符串類型:** | 字符串就是一串固定長度的字符連接起來的字符序列。Go的字符串是由單個字節連接起來的。Go語言的字符串的字節使用UTF-8編碼標識Unicode文本。 |
| **派生類型:** | 包括: (a) 指針類型(Pointer) (b) 數組類型 (c) 結構化類型(struct) (d) 聯合體類型 (union) (e) 函數類型 (f) 切片類型 (g) 接口類型(interface) (h) Map 類型 (i) Channel 類型 |
## 數字類型
Go 也有基于架構的類型,例如:int、uint 和 uintptr。
| 序號 | 類型和描述 |
| --- | --- |
| **uint8** | 無符號 8 位整型 (0 到 255) |
| **uint16** | 無符號 16 位整型 (0 到 65535) |
| **uint32** | 無符號 32 位整型 (0 到 4294967295) |
| **uint64** | 無符號 64 位整型 (0 到 18446744073709551615) |
| **int8** | 有符號 8 位整型 (-128 到 127) |
| **int16** | 有符號 16 位整型 (-32768 到 32767) |
| **int32** | 有符號 32 位整型 (-2147483648 到 2147483647) |
| **int64** | 有符號 64 位整型 (-9223372036854775808 到 9223372036854775807) |
浮點型:
| 序號 | 類型和描述 |
| --- | --- |
| **float32** | IEEE-754 32位浮點型數 |
| **float64** | IEEE-754 64位浮點型數 |
| **complex64** | 32 位實數和虛數 |
| **complex128** | 64 位實數和虛數 |
## 其他數字類型
以下列出了其他更多的數字類型:
| 序號 | 類型和描述 |
| --- | --- |
| **byte** | 類似 uint8 |
| **rune** | 類似 int32 |
| **uint** | 32 或 64 位 |
| **int** | 與 uint 一樣大小 |
| **uintptr** | 無符號整型,用于存放一個指針 |
- Go 語言簡介
- Go 語言環境安裝
- Go 語言結構
- Go 語言基礎語法
- Go 語言數據類型
- Go 語言變量
- Go 語言常量
- Go 語言運算符
- Go 語言條件語句
- Go 語言 if 語句
- Go 語言 if...else 語句
- Go 語言 if 語句嵌套
- Go 語言 switch 語句
- Go 語言 select 語句
- Go 語言循環語句
- Go 語言 for 循環
- Go 語言循環嵌套
- Go 語言 break 語句
- Go 語言 continue 語句
- Go 語言 goto 語句
- Go 語言函數
- Go 語言函數值傳遞值
- Go 語言函數引用傳遞值
- Go 語言函數作為值
- Go 語言函數閉包
- Go 語言函數方法
- Go 語言變量作用域
- Go 語言數組
- Go 語言多維數組
- Go 語言向函數傳遞數組
- Go 語言指針
- Go 語言指針數組
- Go 語言指向指針的指針
- Go 語言指針作為函數參數
- Go 語言結構體
- Go 語言切片(Slice)
- Go 語言范圍(Range)
- Go 語言Map(集合)
- Go 語言遞歸函數
- Go 語言類型轉換
- Go 語言接口
- Go 錯誤處理
- Go 語言開發工具