本篇基于 Go 1.25.1 版本,全覆盖数值型、布尔型、字符串、类型转换、类型推断,新手直接抄作业✅
一、Go 基本数据类型总览
Go 是静态强类型语言,类型一旦定义不能随意改变。
| 类型分类 | 具体类型 | 说明 |
|---|---|---|
| 布尔型 | bool | true / false |
| 整型 | int、int8、int16、int32、int64 | 有符号整数 |
uint、uint8、uint16、uint32、uint64 | 无符号整数 | |
| 浮点型 | float32、float64 | 小数 |
| 复数型 | complex64、complex128 | 科学计算 |
| 字符串 | string | 文本,不可变 |
| 字节型 | byte | 等价 uint8 |
| 字符型 | rune | 等价 int32,支持 Unicode |
二、逐类精讲 + 可运行 Demo
1. 布尔型 bool
package main
import "fmt"
func main() {
// 布尔只有 true / false
isGo := true
isJava := false
fmt.Println("喜欢Go吗?", isGo) // true
fmt.Printf("类型:%T\n", isGo) // bool
}✅ 运行:go run main.go
2. 整型 int / uint
最常用:int(自动匹配系统)
func main() {
var age int = 20
var id uint = 1001
var big int64 = 9223372036854775807
fmt.Println(age, id, big)
fmt.Printf("age类型:%T\n", age) // int
}3. 浮点型 float32 / float64
默认 float64(精度更高)
func main() {
pi := 3.1415926
fmt.Println(pi)
fmt.Printf("类型:%T\n", pi) // float64
}4. 字符串 string
双引号包裹,不可修改,支持中文
func main() {
str := "Hello Go 1.25.1"
fmt.Println(str)
fmt.Printf("长度:%d\n", len(str))
}5. byte 与 rune
- •
byte=uint8:处理英文、数字 - •
rune=int32:处理中文、emoji
func main() {
c1 := 'A' // byte
c2 := '中' // rune
fmt.Printf("c1:%T,c2:%T\n", c1, c2)
}三、类型推断(最常用写法)
不用写类型,自动推断
func main() {
name := "Go语言" // string
score := 99 // int
price := 19.99 // float64
ok := true // bool
fmt.Printf("%T %T %T %T\n", name, score, price, ok)
}四、字面量表示法(数字简写)
func main() {
// 十进制
a := 100
// 二进制
b := 0b110
// 八进制
c := 077
// 十六进制
d := 0xff
fmt.Println(a, b, c, d) // 100 6 63 255
}五、类型转换(必须显式转换)
Go 不支持隐式转换,必须手动转
func main() {
var a int = 100
var b float64 = float64(a) // int → float64
var c int = int(b) // float64 → int
fmt.Printf("%T %T\n", b, c) // float64 int
}六、字符串 ↔ 数字 转换
需导入 strconv
package main
import (
"fmt"
"strconv"
)
func main() {
// string → int
numStr := "100"
num, _ := strconv.Atoi(numStr)
// int → string
str := strconv.Itoa(200)
fmt.Println(num, str) // 100 200
}七、完整整合 Demo(可直接运行)
main.go 全篇可跑:
package main
import (
"fmt"
"strconv"
)
func main() {
// 布尔
ok := true
// 整型
age := 20
// 浮点
pi := 3.14
// 字符串
name := "Go学习"
// 字符
ch := '中'
// 输出
fmt.Println("布尔:", ok)
fmt.Println("整型:", age)
fmt.Println("浮点:", pi)
fmt.Println("字符串:", name)
fmt.Println("字符:", ch)
// 类型转换
f := float64(age)
i := int(f)
fmt.Println("转换:", f, i)
// 字符串数字互转
num, _ := strconv.Atoi("666")
s := strconv.Itoa(888)
fmt.Println("字符串转换:", num, s)
}运行:
go run main.go八、高频知识点表格
| 知识点 | 规则 |
|---|---|
| 类型安全 | 强类型,不允许隐式转换 |
| 默认值 | int=0,bool=false,string="" |
| 字符串 | 不可变,双引号定义 |
| 类型推断 | := 自动识别类型 |
| 中文处理 | 必须用 rune |
| 数字转换 | 必须显式转换 |
📌 总结
- 1. 基础类型:bool、int、float、string、byte、rune
- 2. 类型推断:
:=最常用 - 3. 类型转换:必须手动强制转换
- 4. 字符串:不可变,len() 获取长度
- 5. 中文:用 rune 类型
一篇搞定Go所有基础类型,新手直接进阶🚀
MiaoAll