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

发布时间 - 2026-01-23 00:00:00    点击率:
Go语言基本数据类型包括int、float64、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 都能直接处理。

  • 双引号支持转义:"Hello\nWorld";反引号包裹原始字符串:`C:\Users\name` 不解析转义
  • 获取字符(rune)而非字节:for _, r := range "你好" { fmt.Printf("%c ", r) } → 输出“你 好”;直接索引 s[0] 拿到的是 UTF-8 第一个字节,不是第一个字符
  • 拼接建议用 strings.Build

    er
    (高效)或 +(简单短串);避免循环中反复 += 创建大量临时字符串

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

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

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

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


# go  # golang  # go语言  # 字节  # 格式化输出  # 数据类型  # String  # Float  # 常量  # 运算符  # 逻辑运算符  # if  # for  # math  # printf  # const  # 字符串  # 无类型  # bool  # int  # 循环  # 整数类型  # 布尔类型  # Struct 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: php json中文编码为null的解决办法  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  Laravel怎么清理缓存_Laravel optimize clear命令详解  Laravel怎么在Controller之外的地方验证数据  什么是javascript作用域_全局和局部作用域有什么区别?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  怎样使用JSON进行数据交换_它有什么限制  如何制作一个表白网站视频,关于勇敢表白的小标题?  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  java获取注册ip实例  昵图网官网入口 昵图网素材平台官方入口  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  Linux系统命令中screen命令详解  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  Laravel如何使用withoutEvents方法临时禁用模型事件  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  JS经典正则表达式笔试题汇总  Laravel用户密码怎么加密_Laravel Hash门面使用教程  北京企业网站设计制作公司,北京铁路集团官方网站?  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  个人网站制作流程图片大全,个人网站如何注销?  魔方云NAT建站如何实现端口转发?  网站建设整体流程解析,建站其实很容易!  EditPlus中的正则表达式 实战(1)  iOS中将个别页面强制横屏其他页面竖屏  Python并发异常传播_错误处理解析【教程】  如何选择PHP开源工具快速搭建网站?  Laravel如何记录自定义日志?(Log频道配置)  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  利用python获取某年中每个月的第一天和最后一天  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  Android自定义listview布局实现上拉加载下拉刷新功能  移动端脚本框架Hammer.js  利用 Google AI 进行 YouTube 视频 SEO 描述优化  🚀拖拽式CMS建站能否实现高效与个性化并存?  Android使用GridView实现日历的简单功能  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  教你用AI将一段旋律扩展成一首完整的曲子  佛山企业网站制作公司有哪些,沟通100网上服务官网?  如何快速生成橙子建站落地页链接?  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  原生JS实现图片轮播切换效果  香港服务器网站卡顿?如何解决网络延迟与负载问题?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  浅析上传头像示例及其注意事项  html5audio标签播放结束怎么触发事件_onended回调方法【教程】