Golang基本数据类型有哪些,数据类型分类与说明

来源:AI智能体作者:小白龙头衔:草根站长
导读:本期聚焦于小伙伴创作的《Golang基本数据类型有哪些,数据类型分类与说明》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《Golang基本数据类型有哪些,数据类型分类与说明》有用,将其分享出去将是对创作者最好的鼓励。

Golang的基本数据类型是构建复杂程序的基础,所有变量、常量的定义都依赖这些类型,不同类型的设计对应不同的内存分配和计算需求,合理选择类型能提升程序的性能和稳定性。

Golang基本数据类型有哪些,数据类型分类与说明

Golang基本数据类型分类

Golang的基本数据类型整体可以分为三大类,分别是数值类型、字符串类型和布尔类型,其中数值类型又进一步细分为整数类型、浮点数类型和复数类型。

1. 数值类型

整数类型

整数类型根据是否有符号和占用的内存大小分为多种,具体分类和特性如下:

类型名称是否有符号内存占用(字节)取值范围
int81-128 ~ 127
uint810 ~ 255
int162-32768 ~ 32767
uint1620 ~ 65535
int324-2147483648 ~ 2147483647
uint3240 ~ 4294967295
int648-9223372036854775808 ~ 9223372036854775807
uint6480 ~ 18446744073709551615
int32位系统4字节,64位系统8字节对应系统的int32或int64取值范围
uint32位系统4字节,64位系统8字节对应系统的uint32或uint64取值范围
byte10 ~ 255,是uint8的别名
rune4-2147483648 ~ 2147483647,是int32的别名,用于表示Unicode码点

整数类型的使用示例:

package main

import "fmt"

func main() {
    var a int8 = 100
    var b uint8 = 200
    var c byte = 'A' // byte类型存储字符的ASCII码
    var d rune = '中' // rune类型存储中文的Unicode码
    fmt.Println(a, b, c, d)
}

浮点数类型

浮点数类型用于表示带小数的数值,Golang支持两种浮点数类型:

  • float32:单精度浮点数,占用4字节,遵循IEEE 754标准,精度约为6-7位有效数字
  • float64:双精度浮点数,占用8字节,遵循IEEE 754标准,精度约为15-16位有效数字,是浮点数的默认类型

浮点数类型使用示例:

package main

import "fmt"

func main() {
    var f1 float32 = 3.1415
    var f2 float64 = 3.141592653589793
    fmt.Printf("float32 value: %v, type: %Tn", f1, f1)
    fmt.Printf("float64 value: %v, type: %Tn", f2, f2)
}

复数类型

复数类型用于表示数学中的复数,包含实部和虚部,Golang支持两种复数类型:

  • complex64:实部和虚部都是float32类型,占用8字节
  • complex128:实部和虚部都是float64类型,占用16字节,是复数的默认类型

复数类型使用示例:

package main

import "fmt"

func main() {
    var c1 complex64 = 1 + 2i
    var c2 complex128 = 3.14 + 5.27i
    fmt.Printf("complex64 value: %v, type: %Tn", c1, c1)
    fmt.Printf("complex128 value: %v, type: %Tn", c2, c2)
    // 获取实部和虚部
    fmt.Println("c1 real:", real(c1), "imag:", imag(c1))
}

2. 字符串类型

字符串类型string是Golang中常用的基本类型,用于表示一串字符序列,底层是不可变的字节数组。字符串的值需要用双引号包裹,支持转义字符,也可以直接用反引号定义原生字符串,原生字符串不会处理转义字符。

字符串类型使用示例:

package main

import "fmt"

func main() {
    var s1 string = "hello golang"
    var s2 string = "hellonworld" // 包含转义字符,换行
    var s3 string = `hello
world` // 原生字符串,保留换行
    fmt.Println(s1)
    fmt.Println(s2)
    fmt.Println(s3)
    // 字符串长度(字节数)
    fmt.Println("s1 length:", len(s1))
}

3. 布尔类型

布尔类型bool只有两个取值:truefalse,占用1字节内存,用于逻辑判断场景,不能和其他类型相互转换。

布尔类型使用示例:

package main

import "fmt"

func main() {
    var b1 bool = true
    var b2 bool = false
    fmt.Printf("b1: %v, type: %Tn", b1, b1)
    fmt.Printf("b2: %v, type: %Tn", b2, b2)
    // 逻辑判断
    if b1 && !b2 {
        fmt.Println("逻辑判断成立")
    }
}

数据类型使用注意事项

在使用Golang基本数据类型时,需要注意不同类型的变量之间不能直接赋值,尤其是不同长度的整数类型,需要显式转换。例如int8类型的变量不能直接赋值给int16类型的变量,需要通过类型转换实现。同时字符串是不可变的,不能直接修改字符串中的某个字符,如需修改可以先转换为字节切片或rune切片,修改后再转回字符串。

package main

import "fmt"

func main() {
    var a int8 = 10
    // 错误写法:var b int16 = a
    var b int16 = int16(a) // 正确,显式类型转换
    fmt.Println(b)

    s := "hello"
    // 错误写法:s[0] = 'H'
    bs := []byte(s)
    bs[0] = 'H'
    s = string(bs)
    fmt.Println(s) // 输出Hello
}

Golang基本数据类型数据类型分类intstring修改时间:2026-06-23 22:57:25

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。