Go语言的基本类型

2025-09-06 19:38:00
丁国栋
原创 9
摘要:本文记录和整理Go语言的类型系统。

Go有哪些基础类型?

在 Go 语言中,基础类型(Basic Types)分为以下几类,包括数值、布尔、字符串和特殊类型。以下是完整分类和示例:


1. 布尔类型(Boolean)

  • bool 取值:truefalse 示例:

    var isDone bool = true

2. 数值类型(Numeric Types)

(1)整数类型(Signed)

类型 位数 范围
int 平台相关(32或64位) 取决于系统架构
int8 8位 -128 到 127
int16 16位 -32768 到 32767
int32 32位 -2.1e9 到 2.1e9
int64 64位 -9.2e18 到 9.2e18

(2)整数类型(Unsigned)

类型 位数 范围
uint 平台相关 0 到 4.3e9(32位)或 1.8e19(64位)
uint8 (别名 byte) 8位 0 到 255
uint16 16位 0 到 65535
uint32 32位 0 到 4.3e9
uint64 64位 0 到 1.8e19
uintptr 平台相关 用于存储指针地址

(3)浮点数类型

类型 位数 范围 精度
float32 32位 ±1.18e-38 到 ±3.4e38 6-7位小数
float64 64位 ±2.23e-308 到 ±1.8e308 15-16位小数

(4)复数类型

类型 位数 说明
complex64 64位 实部和虚部为 float32
complex128 128位 实部和虚部为 float64

示例:

var c complex64 = 3 + 4i

3. 字符串类型(String)

  • string 不可变的 UTF-8 编码字节序列。 示例:

    var s string = "Hello, 世界"

4. 字符类型(Rune)

  • rune 本质是 int32,表示一个 Unicode 码点(支持中文、Emoji 等)。 示例:

    var r rune = 'A'  // 等价于 var r int32 = 65

5. 特殊类型

(1)字节类型(Byte)

  • byte 本质是 uint8 的别名,用于处理 ASCII 或二进制数据。 示例:

    var b byte = 255

(2)空值类型

  • nil 表示指针、切片、映射、通道、接口等的零值。

6. 类型默认值(Zero Value)

类型 默认值
数值类型(int/float等) 0
bool false
string ""(空字符串)
指针/引用类型 nil

7. 类型转换

Go 要求显式类型转换(不支持隐式转换):

var i int = 42
var f float64 = float64(i)  // 必须显式转换

总结表

类别 类型示例 说明
布尔 bool true/false
整数 int, int8, uint 有符号/无符号整型
浮点数 float32, float64 单精度/双精度浮点数
复数 complex64, complex128 复数类型
字符串 string UTF-8 编码文本
字符 rune Unicode 码点(int32
字节 byte uint8 别名(二进制/ASCII)

--

发表评论
博客分类