📘 Go 基本数据类型全解|新手一次吃透!

2026-04-07 9 0

本篇基于 Go 1.25.1 版本,全覆盖数值型、布尔型、字符串、类型转换、类型推断,新手直接抄作业✅


一、Go 基本数据类型总览

Go 是静态强类型语言,类型一旦定义不能随意改变。

类型分类具体类型说明
布尔型booltrue / 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. 1. 基础类型:bool、int、float、string、byte、rune
  2. 2. 类型推断:= 最常用
  3. 3. 类型转换:必须手动强制转换
  4. 4. 字符串:不可变,len() 获取长度
  5. 5. 中文:用 rune 类型

一篇搞定Go所有基础类型,新手直接进阶🚀

 

相关文章

🧮 Go 运算符与表达式完全攻略|新手必学
Go 变量声明与初始化|新手必背核心指南
Go 跨平台交叉编译|一行命令打包全平台!
🔥Go vet 代码体检神器|新手也能秒懂的静态检查指南
✨ Go 代码颜值天花板!gofmt 格式化保姆级教程
🚀Go 命令行工具全解|新手必背常用命令!

发布评论