news 2026/4/16 18:03:36

HoRain云--Go语言数据类型全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HoRain云--Go语言数据类型全解析

🎬 HoRain云小助手:个人主页

🔥 个人专栏: 《Linux 系列教程》《c语言教程》

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

专栏介绍

专栏名称

专栏介绍

《C语言》

本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。

《网络协议》

本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制!

《docker容器精解篇》

全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。

《linux系列》

本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。

《python 系列》

本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。

《试题库》

本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等)

目录

⛳️ 推荐

专栏介绍

Go 语言数据类型

一、基本类型(基础数据类型)

1. 布尔类型 (bool)

2. 整数类型

3. 浮点类型

4. 复数类型

5. 字符与字符串

二、复合类型(派生类型)

三、Go 数据类型特点

四、类型转换

五、总结


Go 语言数据类型

Go 语言是一种静态强类型语言,所有变量在编译时必须明确其数据类型,且类型一旦确定便不可更改。Go 的数据类型体系清晰,可分为四大类:基本类型复合类型引用类型接口类型

一、基本类型(基础数据类型)

1. 布尔类型 (bool)

2. 整数类型

类型字节大小有符号范围无符号范围说明
int平台相关32/64位32/64位通用整型,优先用明确位数类型
int81字节-128 ~ 127-8位有符号整数
int162字节-32768 ~ 32767-16位有符号整数
int324字节-2147483648 ~ 2147483647-32位有符号整数(rune别名)
int648字节-9223372036854775808 ~ 9223372036854775807-64位有符号整数
uint平台相关-32/64位通用无符号整型
uint81字节-0 ~ 2558位无符号整数(byte别名)
uint162字节-0 ~ 6553516位无符号整数
uint324字节-0 ~ 429496729532位无符号整数
uint648字节-0 ~ 1844674407370955161564位无符号整数
uintptr平台相关-与平台指针位数一致用于存储指针地址

特殊说明:

3. 浮点类型

类型精度范围(约)说明
float326-7位小数±3.4×10³⁸32位浮点数
float6415-17位小数±1.8×10³⁰⁸64位浮点数(默认浮点类型)

注意:浮点数存在精度误差,计算时需谨慎。

4. 复数类型

类型实部/虚部类型示例
complex64float323.0 + 4.0i
complex128float641.5 + 2.5i

5. 字符与字符串

二、复合类型(派生类型)

类型说明示例
数组 (Array)固定长度、相同类型元素序列var a [3]int = [3]int{1,2,3}
切片 (Slice)动态长度、数组片段引用s := []int{1,2,3}
结构体 (Struct)自定义数据类型,组合不同类型数据type Person struct {Name string; Age int}
映射 (Map)键值对集合m := map[string]int{"a":1}
接口 (Interface)定义方法集合,实现多态interface{} (空接口)
指针 (Pointer)存储变量内存地址var p *int

三、Go 数据类型特点

  1. 静态类型:编译时确定变量类型,运行时不能改变
  2. 强类型:类型不会自动转换,必须显式转换
    • 示例:var b float64 = float64(a)
  3. 零值机制:未初始化变量有明确默认值
    • 整数:0
    • 布尔:false
    • 字符串:空字符串
    • 指针:nil
  4. 作用域清晰:通过代码块控制作用域,通过首字母大小写控制跨包访问

四、类型转换

Go 不支持隐式类型转换,必须显式转换:

var a int = 100 var b float64 = float64(a) // 显式转换 // 字符串与数值转换 var c string = strconv.Itoa(a) // int -> string var d int = strconv.Atoi("123") // string -> int

五、总结

Go 语言的数据类型体系清晰,适合高效、安全的编程。在实际开发中:

理解这些数据类型是编写规范、高效 Go 代码的基础。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 13:41:46

打造个性化追番体验:Kazumi自定义规则引擎全解析

打造个性化追番体验:Kazumi自定义规则引擎全解析 【免费下载链接】Kazumi 基于自定义规则的番剧采集APP,支持流媒体在线观看,支持弹幕。 项目地址: https://gitcode.com/gh_mirrors/ka/Kazumi 作为动漫爱好者,你是否也曾遇…

作者头像 李华
网站建设 2026/4/15 15:56:39

FSMN-VAD模型缓存设置技巧,下载提速秘诀

FSMN-VAD模型缓存设置技巧,下载提速秘诀 语音端点检测(VAD)是语音处理流水线中至关重要的预处理环节。在实际部署中,不少用户反馈:第一次启动FSMN-VAD服务时,模型下载动辄耗时5–15分钟,甚至因…

作者头像 李华
网站建设 2026/4/16 10:50:09

YOLOv13镜像使用心得:从入门到落地全过程

YOLOv13镜像使用心得:从入门到落地全过程 在目标检测工程实践中,一个反复出现的现实困境是:模型论文里写的AP 54.8,跑在自己机器上却连基础预测都报错——不是torch.cuda.is_available()返回False,就是flash_attn找不…

作者头像 李华
网站建设 2026/4/16 12:51:47

温度对BJT电路影响的仿真研究实战案例

以下是对您提供的技术博文进行 深度润色与专业重构后的版本 。我以一位深耕模拟电路设计十余年的工程师兼教学博主身份,将原文从“教科书式说明”彻底转化为 真实项目现场的语言节奏、思维逻辑与工程质感 ——去掉AI腔调、强化实操锚点、植入调试血泪经验、打通…

作者头像 李华