如何使用Golang基本数据类型_掌握int、float、string和bool

10次阅读

go语言基本数据类型包括intFloat64、Stringbool,需注意类型显式转换、浮点精度比较及布尔值严格类型检查。

如何使用Golang基本数据类型_掌握int、float、string和bool

Go语言的基本数据类型是编程的起点,掌握 intfloat64(常用浮点类型)、stringbool 能帮你写出清晰、安全、高效的代码。它们在声明、初始化、转换和使用上都有明确规则,不需要过度设计,但需注意细节。

整数类型:选对宽度,避免溢出

Go 中没有隐式类型提升,int 是平台相关类型(32 位或 64 位),推荐显式使用 int32int64 以增强可移植性。小范围计数可用 int8int16,但要注意溢出风险。

  • 声明并初始化:var age int = 25 或更简洁地 age := 25(编译器自动推导为 int
  • 跨类型运算需显式转换:var x int32 = 10; var y int64 = 20; sum := x + int32(y) ❌ 错误;应写成 sum := int64(x) + y
  • 常量默认是无类型的,参与运算时按上下文决定类型:const timeout = 30 可赋给 intint64 等变量

浮点类型:优先用 float64,慎用精度比较

Go 默认浮点类型是 float64,精度高、性能好;float32 节省内存但精度有限,适合图形或大量数组场景。

  • 字面量自动识别:price := 19.99 推导为 float64rate := float32(0.05) 显式指定
  • 不要直接用 == 比较浮点数:0.1+0.2 == 0.3 返回 false;改用误差范围判断:math.Abs(a-b)
  • 格式化输出控制精度:fmt.printf("%.2f", 3.14159) 输出 3.14

字符串:不可变字节序列,UTF-8 原生支持

string 在 Go 中是只读的字节切片(底层是 Struct{ ptr *byte, len int }),天然支持 UTF-8,中文、emoji 都能直接处理。

立即学习go语言免费学习笔记(深入)”;

  • 双引号支持转义:"HellonWorld";反引号包裹原始字符串:`C:Usersname` 不解析转义
  • 获取字符(rune)而非字节:for _, r := range "你好" { fmt.Printf("%c ", r) } → 输出“你 好”;直接索引 s[0] 拿到的是 UTF-8 第一个字节,不是第一个字符
  • 拼接建议用 strings.Builder(高效)或 +(简单短串);避免循环中反复 += 创建大量临时字符串

布尔类型:只有 true 和 false,不与数值互转

bool 是独立类型,不能和整数混用(如 C 中的 0/1),强制类型安全。

  • 声明:done := falsevar active bool = true
  • 逻辑运算符&&(短路与)、||(短路或)、!(非);&| 是位运算,不用于布尔判断
  • 条件语句必须是布尔表达式:if x > 0 { ... } ✅;if x { ... } ❌ 编译失败(x 是 int)

不复杂但容易忽略。写代码时多看一眼类型,少些运行时 panic,也少些调试时间。

text=ZqhQzanResources