一基础数据类型
一、布尔型(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)
}
