Goland 配置 proto 文件自动格式化(Golang 开发必备)
相信不少用 Goland 做 Golang 开发的同学都有过这样的经历:团队里每个人写 proto 文件的格式都不一样——有的缩进用 2 个空格,有的用 4 个;有的字段注释在上方,有的在右侧;提交代码时总因为格式问题产生冲突。
相信不少用 Goland 做 Golang 开发的同学都有过这样的经历:团队里每个人写 proto 文件的格式都不一样——有的缩进用 2 个空格,有的用 4 个;有的字段注释在上方,有的在右侧;提交代码时总因为格式问题产生冲突。
多人以为乱码是“编码格式不统一”,其实URL参数乱码的核心原因更简单:URL 的查询参数部分只支持ASCII字符集,中文、空格、特殊符号(如!@#)等非 ASCII 字符直接传入会被解析器误判。
相信不少GO 开发者都遇到过这种糟心的情况:明明在代码里引入了第三方包,IDE 也没提示语法错误,可一执行 go build 构建就抛出 undefined: 包名/函数名 的错误。
这种问题看似诡异,实则大多和包的导入、安装、依赖配置有关。今天就把我遇到的问题和解决方案进行整理分享,希望对大家有所帮助。
用Golang 做金额计算或高精度数值运算时,很多开发者都会踩过 float 浮点数的“坑”。
比如执行 0.1 + 0.2,得到的结果不是预期的 0.3,而是 0.30000000000000004。
这种运算失真在支付、财务等场景中可能引发严重问题,今天就聊聊失真的根源,以及用第三方 decimal 包解决问题的完整方案。
写代码时,不少同学常用 else if 处理多条件判断,毕竟上手简单。
但随着业务逻辑迭代,当 else if 串越来越长,你会发现代码变得臃肿难维护,调试时找个条件都要翻半天。
在使用 GO 语言的 GORM 框架进行数据库开发时,我们经常会遇到需要判断当前构建的 DB 对象是否已经添加了 WHERE 条件的场景。
比如在封装通用查询函数时,要避免重复添加默认条件,或者根据是否有自定义条件来决定是否执行某些逻辑。