全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-13 5 分钟 ✍️ juanwangdev

Go基本数据类型

Go内置多种基本数据类型,语法简洁高效。

数值类型

整数类型

Go
// 有符号整数
int8   // -128 到 127
int16  // -32768 到 32767
int32  // -2^31 到 2^31-1
int64  // -2^63 到 2^63-1
int    // 32或64位(取决于平台)

// 无符号整数
uint8   // 0 到 255(同byte)
uint16  // 0 到 65535
uint32  // 0 到 2^32-1
uint64  // 0 到 2^64-1
uint    // 32或64位(取决于平台)

// 特殊类型
byte  // uint8别名
rune  // int32别名,表示Unicode码点
uintptr  // 存放指针

浮点类型

Go
float32  // 32位浮点数
float64  // 64位浮点数(默认推荐)

var a float32 = 3.14
var b float64 = 3.14159265358979

浮点运算推荐使用float64,精度更高。

复数类型

Go
complex64   // 两个float32
complex128  // 两个float64

var c complex128 = 1 + 2i
fmt.Println(real(c))  // 实部:1
fmt.Println(imag(c))  // 虚部:2

布尔类型

Go
bool  // true 或 false

var b bool = true
var c bool = false

// 默认值false
var d bool
fmt.Println(d)  // false

布尔值不能转换为整数,Go无隐式类型转换。

字符串类型

Go
string  // 字符串,UTF-8编码

var s string = "Hello"
var t string = "世界"

// 多行字符串
var m string = `
第一行
第二行
`

// 字符串不可变
s[0] = 'h'  // 编译错误!

字符串操作

Go
s := "Hello"

// 获取长度
len(s)  // 5

// 遍历字节
for i := 0; i < len(s); i++ {
    fmt.Println(s[i])  // 打印字节值
}

// 遍历字符
for i, c := range s {
    fmt.Println(i, c)  // 打印索引和Unicode码点
}

类型大小表

类型大小范围
int81字节-128~127
int162字节-32768~32767
int324字节±2×10^9
int648字节±9×10^18
float324字节约7位精度
float648字节约15位精度
bool1字节true/false
string动态UTF-8

类型别名

Go
// 内置别名
byte  // = uint8
rune  // = int32

// 自定义别名
type MyInt int
type MyString string

var n MyInt = 10
var s MyString = "hello"

要点总结

  • 整数分有符号/无符号,大小明确
  • int/uint大小取决于平台
  • float64推荐,精度更高
  • bool只有true/false,默认false
  • string是UTF-8编码,不可变
  • byte是uint8别名,rune是int32别名
  • Go无隐式类型转换

📝 发现内容有误?点击此处直接编辑

← 上一篇 Go变量声明
下一篇 → Go常量定义与iota
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库