Go 基本类型

Go 的数值、布尔、字符串和复数等基本类型,以及它们在静态类型系统中的角色。

#type / concept #status / growing #tech / dev #resource / go

[!info] related notes

Go 基本类型

一句话定义

Go 基本类型是语言内建的最基础数据表示方式,包括整数、浮点数、布尔、字符串和复数,它们构成更复杂数据结构的地基。

核心机制 / 工作原理

Go 的基础类型主要包括:

  • 布尔:bool
  • 字符串:string
  • 有符号整数:intint8int16int32int64
  • 无符号整数:uintuint8uint16uint32uint64uintptr
  • 浮点数:float32float64
  • 复数:complex64complex128
  • 字符别名:
    • byteuint8 的别名
    • runeint32 的别名,常用于表示 Unicode 码点

Go 的类型系统特点是:

  • 静态类型明确
  • 不鼓励隐式数值转换
  • 字符串是只读字节序列的抽象
  • 很多类型都有稳定零值

最小例子 / 最小场景

var age int = 18
var pi float64 = 3.14
var ok bool = true
var name string = "go"
var ch rune = ''

从这个例子里最值得注意的是:

  • 类型一般写在变量名后面
  • runestring 不是一回事
  • 不同整数类型之间通常需要显式转换

需要优先形成的直觉

  • int 是最常用整数类型,但其位宽依赖架构
  • byte 更偏字节处理语境
  • rune 更偏字符码点语境
  • string 看起来像字符序列,但底层更接近只读字节片段

边界与易混淆点

  • rune 不是“字符类型”的完整替代,它只是码点表示
  • string 的长度默认按字节计,不一定等于字符数
  • Go 不会像某些动态语言那样帮你自动完成数值类型转换
  • 复杂容器如 slicemap 不是基本类型,它们有单独的运行时行为
创建于 2026/6/20 更新于 2026/6/20