Go语言技术文章
-
1.背景 我们基于 go mod 机制来管理我们项目的依赖库版本,其中 go.mod 记录了依赖库版本信息。 一般第三方依赖库(包括公司内网gitlab上的依赖库),其源码都不被包含在我们的项目内部,而是486 收藏 -
在Go语言中,正弦函数由 math 包提供,函数入口为 math.Sin,正弦函数的参数为 float64,返回值也是 float64。在使用正弦函数时,根据实际精度可以进行转换。Go语言的标准库支持对图片像素进行访486 收藏 -
参数及返回值 参数一指定数据类型为int 参数二 (…interface{}) 可传任何多个不同类型的参数 返回值:单个返回值直接指定数据类型可以不使用 (),多个返回值需使用()。各返回值之间使用逗号分486 收藏 -
Go 的实验性 simd API 不把向量宽度写进类型。本文说明如何用 Len 动态分块,并用 Part 接口正确处理不足一个向量的切片尾部。485 收藏 -
atomic.Value 适合发布读多写少的完整配置快照,但第一次 Store 会锁定具体类型,nil 与类型混用会 panic。本文给出 *Config 封装、深拷贝规则、基准方法及 atomic.Pointer 取舍。485 收藏 -
Go 的方法值 x.M 在创建时就会保存接收者,后续调用不会自动读取变量的新值。本文用值接收者、指针接收者和回调场景说明副本边界,并给出排查与修复清单。485 收藏 -
用 time.ParseDuration 解析带单位的毫秒和秒输入,再通过范围校验保护超时、重试和定时器配置,避免裸数字和单位误解。485 收藏 -
Go defer 会不会覆盖显式 return,关键不在 return 写没写值,而在 defer 是否能访问函数的命名结果参数。本文用执行顺序、闭包捕获和 defer 参数求值三个角度拆开这个常见误区。485 收藏 -
Go 处理跨夏令时的日期范围时,不要把一天硬编码成 24 小时。本文用 time.Location 绑定 IANA 时区,以左闭右开方式构造本地日期边界,并说明 AddDate 与 Duration 的使用区别。485 收藏 -
Go 读取邮件时,mail.ReadMessage 负责拆分邮件头,中文 Subject 用 mime.WordDecoder.DecodeHeader 解码,中文 From 则用带 WordDecoder 的 AddressParser 解析;遇到 GBK 等字符集时再补 CharsetReader。485 收藏 -
用 Go 的 io.Pipe 把压缩器输出和 HTTP 请求串成一条流,说明读写端协作、错误传递、请求结束和可复查验证的关键边界。485 收藏 -
用 Go 标准库 log/slog 的 Handler.WithGroup 组织请求、用户和数据库字段,比较文本与 JSON 输出,并验证自定义 Handler 的实现边界。485 收藏 -
Go 的 json.Decoder 开启 DisallowUnknownFields 后,客户端多传字段会变成解码错误。本文用配置接口示例说明严格校验的适用边界、兼容新增字段的处理方式、错误定位和测试清单。485 收藏 -
Go slog 适合把请求 ID、用户标识和耗时统一写入结构化日志。本文从 HTTP 请求场景出发,给出 context 传递、Handler 过滤和字段命名的最小写法,并说明哪些信息不应直接写入日志。485 收藏 -
Golang · Go教程 | 2个月前 | WEB开发 · go · 表单 · 用户体验 · html/template · 表单校验 html/template 无障碍 Go教程 字段错误 输入回填 aria-invalid
Go 的 html/template 表单校验失败时,重新渲染页面不等于只显示一行错误。本文用字段级错误、旧值回填、aria-invalid 和焦点定位,把一次失败提交收敛成可修复的交互。485 收藏