当前位置: 首页 > news >正文

数据类型详解(布尔值、整型、浮点型、字符串等)-《Go语言实战指南》

Go语言是一门静态强类型语言,所有变量在编译时必须明确其数据类型。本章将详细介绍Go的基础数据类型,帮助你理解并正确使用它们。


一、数据类型分类总览

Go 的基础数据类型可以分为以下几类:

类型分类代表类型示例
布尔类型booltruefalse
整数类型intint8 等123-42
浮点类型float32float643.14-0.01
字符串类型string"hello"
字符类型rune'A''中'
无符号整数uintuint8 等2550
字节类型bytebyte('A')

二、布尔值(bool)

布尔类型只有两个值:true 和 false,常用于条件判断。

var flag bool = true
if flag {fmt.Println("flag 为真")
}

注意事项:

  • • 不能将布尔值与整数直接比较,如:if flag == 1 是非法的。
  • • 零值为 false

三、整型(int, int8, int16, int32, int64)

Go提供多种整型:

类型占用字节范围
int平台相关通常为32位或64位
int81字节-128 到 127
int162字节-32,768 到 32,767
int324字节-2,147,483,648 到 2,147,483,647
int648字节极大范围

无符号类型:uintuint8uint16uint32uint64

常见别名:

  • • byte 是 uint8
  • • rune 是 int32,常用于表示 Unicode 字符

示例:

var age int = 30
var score int16 = 256

四、浮点型(float32, float64)

Go支持两种浮点数类型:

类型精度范围
float32精度约7位
float64精度约15~16位(推荐)

默认浮点常量为 float64 类型。

示例:

var pi float64 = 3.14159
speed := 99.8

注意:

  • • 浮点数存在精度误差;
  • • 可用 math 包做数值运算(如 math.Sqrtmath.Pow 等)。

五、字符串(string)

字符串是UTF-8编码的不可变字节序列。

var name string = "Golang"
greet := "你好,世界"

常用操作:

fmt.Println(len(greet))        // 字节长度
fmt.Println(greet[0])          // 取第一个字节(不是字符)
fmt.Println(greet[0:6])        // 截取字节范围

字符串拼接:

s1 := "Hello"
s2 := "World"
s := s1 + " " + s2

使用反引号 `...` 可创建原样字符串(保留换行和空格):

msg := `这是
多行
文本`

六、字符(rune)

Go没有独立的 char 类型,字符使用 rune 表示(实际上是 int32):

var ch rune = '中'
fmt.Printf("%c, Unicode: %U\n", ch, ch)

使用场景:处理 Unicode 字符。


七、类型转换

Go中类型不会自动转换,必须显式转换:

var a int = 100
var b float64 = float64(a)var c string = strconv.Itoa(a)  // int 转 string

导入 strconv 包后支持常见类型互转:

strconv.Atoi("123") // string -> int
strconv.ParseFloat("3.14", 64) // string -> float64

八、小结

  • • Go的数据类型强制、安全;
  • • 推荐使用 intfloat64stringbool 等默认类型;
  • • 字符串是不可变类型,处理字符时用 rune
  • • 类型之间必须显式转换,使用 strconv 进行字符串和数值转换。

http://www.xdnf.cn/news/353485.html

相关文章:

  • istio in action之Gateway流量入口与安全
  • 分析NVIDIA的股价和业绩暴涨的原因
  • Zabbix监控 RabbitMQ 指定消息队列名称(pull_alarms )的消费者
  • 富乐德传感技术盘古信息 | 锚定“未来工厂”新坐标,开启传感器制造行业数字化转型新征程
  • IC解析之TPS92682-Q1(汽车LED灯控制IC)
  • 【C/C++】C语⾔内存函数
  • [Errno 122] Disk quota exceeded
  • Linux59 SSH配置前瞻 JumpServer双网卡ping通
  • 金仓数据库永久增量备份技术原理与操作
  • 电商平台如何做好DDoS 攻防战?
  • 物流基础知识-术语 | 医药物流(1)
  • OpenHarmony平台驱动开发(十),MMC
  • k8s监控方案实践(二):集成Alertmanager告警与钉钉Webhook通知
  • C23 与 MISRA C:2025:嵌入式 C 语言的进化之路
  • 4.3【LLaMA-Factory实战】教育大模型:个性化学习路径生成系统全解析
  • 微服务中 本地启动 springboot 无法找到nacos配置 启动报错
  • 第十六章,网络型攻击防范技术
  • Python 常用内置函数详解(十):help()函数——查看对象的帮助信息
  • 【论文阅读27】-TCN–BiLSTM -滑坡预测
  • 从Dockerfile 构建docker镜像——保姆级教程
  • `待办事项css样式
  • electron 结合 react(cra创建的) 创建桌面应用和打包桌面应用
  • 2025年API安全防御全解析:应对DDoS与CC攻击的智能策略
  • rtsp,。。。。
  • 现代框架对SEO的深度影响
  • 【概念解读】开发中遇到的概念阶段
  • RuntimeError: expected scalar type ComplexDouble but found Float
  • 计算机视觉与深度学习 | 视觉+激光雷达+惯惯性SLAM算法汇总(原理,公式,代码)
  • Java中的分布式缓存与Memcached集成实战
  • 电压取样端口静电浪涌防护方案 之6TS Series瞬态抑制器TVS