Go语言技术文章
-
通过带业务字段的 QuotaError 示例,说明 Go errors.Is 自定义 Is 方法的浅比较规则、%w 包装、目标方向与 typed nil 的处理。310 收藏 -
介绍 Go 中 GODEBUG=http2debug=1/2 的使用边界,先确认 HTTP/2 协议,再按 stream ID 和关键帧定位连接、流控、RST_STREAM 与 GOAWAY 问题。310 收藏 -
sync.Cond.Signal 不会保存没有等待者时发出的通知,真正应该持久化的是 ready、队列长度或关闭状态等共享条件。本文用同一把 Locker 保护条件读写,说明如何用 for 设计不会因 Signal 先到而永久等待的等待协议。310 收藏 -
用 go-chart/v2 的 TimeSeries 传入时间点和数值,再配置 XAxis 的时间格式化器;同时说明排序、时区、刻度格式和数据长度不一致时怎样排查。310 收藏 -
Go go-mp3 的 Seek 面向解码后的 PCM 字节流,不是 MP3 压缩文件偏移。本文说明如何使用可定位输入、按4字节 sample 边界换算偏移,并处理 Length=-1 与跳转后的 Read。310 收藏 -
Go的字符串可包含任意字节,UTF-8入口应先限制大小并取得完整文本,再用unicode/utf8.Valid拒绝无效输入。本文给出纯文本Handler与字节偏移诊断示例,说明分块读取、合法替代字符及有损修复的边界。310 收藏 -
Go 双向 TLS 认证中,tls.Config.GetClientCertificate 可以根据服务端的证书请求选择客户端证书。本文说明 CertificateRequestInfo 的筛选信息、回调返回值、错误与空证书边界,以及它和 Certificates 字段的关系。310 收藏 -
Golang · Go教程 | 5天前 | 标准库 · 错误处理 · go · 时间处理 · Go 时区 日期解析 time.LoadLocation time.ParseInLocation time.Location
Go 解析不带时区的本地日期时,应先加载指定的 time.Location,再调用 ParseInLocation。本文区分空输入、未知时区和日期格式错误,并用 errors.Is 与 %w 保留调用方可判断的错误语义。310 收藏 -
用 Go atomic.Bool 管理进程运行状态,展示并发读取、幂等启动、一次停止和适用边界,给出可复用的最小状态封装示例。310 收藏 -
用 Go 的 os.ReadFile 读取配置文件时,不要比较错误字符串。本文用 errors.Is 和 errors.As 区分权限不足、路径不存在与其他失败,并通过 %w 保留可追踪的错误链。309 收藏 -
Go modules 的 vendor 模式能把构建所需依赖放进项目目录,但可复现的关键不是简单提交 vendor,而是让 go.mod、vendor/modules.txt 与构建模式保持一致。本文梳理 go mod vendor、-mod=vendor 和团队协作中的固定检查点。309 收藏 -
Go 使用 slices.SortStableFunc 并让相同排序键返回 0,可以保留本次输入中等价记录的相对次序。本文区分批内稳定性与跨请求确定性,说明切片复制、分片收集和次级键的取舍。309 收藏 -
Go 1.27 模块的 traceback 首行可能出现 runtime/pprof goroutine 标签,这通常是预期的诊断信息,不是 pprof 采集失败。本文说明标签来源、与 profile 数据的区别,以及需要隐藏时如何设置 tracebacklabels=0。309 收藏 -
Go 的 build.Context.MatchFile 会结合文件名和文件内容中的构建约束,判断源文件是否属于目标构建上下文。本文用 GOOS、GOARCH、CgoEnabled 和 BuildTags 说明筛选逻辑、错误处理与源码扫描写法。309 收藏 -
Go JMESPath 查询在请求路径中反复解析时,容易把表达式编译和数据搜索混在一起。本文从一次重复解析的故障症状出发,说明如何用 Compile 提前编译稳定查询,在多个 JSON 文档上复用,并处理并发安全、错误传播和动态表达式边界。309 收藏