一基礎數據類型?
一、布爾型(Bool)
- 定義:表示邏輯真 / 假,僅有兩個值:
true
?和?false
- 內存占用:1 字節
- 使用場景:條件判斷、邏輯運算
二、數值型(Numeric)
1. 整數類型(Integer)

- 特殊類型:
byte
:uint8
?的別名,用于處理 ASCII 字符rune
:int32
?的別名,用于表示 Unicode 字符(如中文、 emoji)
2. 浮點類型(Float)

三,字符串型(String)
- 本質:不可變的 UTF-8 編碼字節序列
- 特性:
- 支持索引訪問:
s[0]
?獲取第一個字節(非字符!) - 字符串拼接:
+
?運算符 - 原生支持 Unicode,可包含任意字符(中文、表情等)
-
1.?byte
?類型
- 定義與本質:
byte
?是?uint8
?的別名,占用 1 個字節的內存空間,其取值范圍是 0 到 255。在 Go 里,byte
?類型主要用于處理 ASCII 字符,因為 ASCII 字符集里的字符可以用一個字節來表示。 - 使用場景:當你處理只包含 ASCII 字符的字符串時,用?
byte
?類型會比較合適,比如處理簡單的英文文本、基本的數字和符號等。 -
2.?rune
?類型
- 定義與本質:
rune
?是?int32
?的別名,占用 4 個字節的內存空間。它主要用于表示 Unicode 碼點,能夠處理包括中文、日文、韓文、表情符號等各種非 ASCII 字符。 - 使用場景:當字符串包含非 ASCII 字符時,就需要使用?
rune
?類型。因為非 ASCII 字符在 UTF - 8 編碼下可能會占用多個字節,而?rune
?可以完整地表示一個 Unicode 字符。
四.使用樣例
package mainimport ("fmt"
)func main() {// 布爾型var b bool = truefmt.Printf("布爾型: 值為 %v,類型是 %T\n", b, b)// 整數類型var i8 int8 = -128var i16 int16 = -32768var i32 int32 = -2147483648var i64 int64 = -9223372036854775808var u8 uint8 = 255var u16 uint16 = 65535var u32 uint32 = 4294967295var u64 uint64 = 18446744073709551615var by byte = 255var r rune = 'A'fmt.Printf("int8: 值為 %v,類型是 %T\n", i8, i8)fmt.Printf("int16: 值為 %v,類型是 %T\n", i16, i16)fmt.Printf("int32: 值為 %v,類型是 %T\n", i32, i32)fmt.Printf("int64: 值為 %v,類型是 %T\n", i64, i64)fmt.Printf("uint8: 值為 %v,類型是 %T\n", u8, u8)fmt.Printf("uint16: 值為 %v,類型是 %T\n", u16, u16)fmt.Printf("uint32: 值為 %v,類型是 %T\n", u32, u32)fmt.Printf("uint64: 值為 %v,類型是 %T\n", u64, u64)fmt.Printf("byte: 值為 %v,類型是 %T\n", by, by)fmt.Printf("rune: 值為 %v,類型是 %T\n", r, r)// 浮點類型var f32 float32 = 3.1415926var f64 float64 = 3.141592653589793fmt.Printf("float32: 值為 %v,類型是 %T\n", f32, f32)fmt.Printf("float64: 值為 %v,類型是 %T\n", f64, f64)// 復數類型var c64 complex64 = 3 + 4ivar c128 complex128 = 3 + 4ifmt.Printf("complex64: 值為 %v,類型是 %T\n", c64, c64)fmt.Printf("complex128: 值為 %v,類型是 %T\n", c128, c128)// 字符串類型var s string = "Hello, World!"fmt.Printf("字符串型: 值為 %v,類型是 %T\n", s, s)
}
