Go语言技术文章
-
Go fitsio 的 Header.Axes 返回各维度长度,len(axes) 只是轴的数量;读取图像时要把所有轴长度相乘,并让目标切片类型与 BITPIX 对应。本文给出二维、三维图像的排查和读取写法。213 收藏 -
Golang · Go教程 | 1星期前 | errgroup · 错误处理 · Context · 并发编程 · Go教程 · Go context 并发任务 errgroup WithContext
Go errgroup.WithContext 会在第一个任务返回非空错误时取消派生上下文,Wait 等待已启动的任务结束后返回第一个错误。本文用可取消的并发示例说明任务函数、结果通道、SetLimit 与退出顺序的写法。213 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · 错误处理 · go · IO · Go 流式处理 io.Reader io.Pipe CloseWithError PipeWriter PipeReader
Go io.Pipe 不会自动把生产端的业务错误变成读取端错误。本文用 CloseWithError 传递原始 error,说明读取端如何先处理已有字节、再区分生产错误与 EOF,并整理成功、失败和提前关闭的关闭约定。213 收藏 -
Go json.Encoder 默认会把 JSON 字符串中的 &, <, > 写成 Unicode 转义。本文说明 SetEscapeHTML(false) 的用法、HTML 安全边界,以及 Encoder、Marshal 和 HTMLEscape 的区别。213 收藏 -
Go 的 http.Redirect 不只是把请求送到新地址,code 参数还决定临时跳转、PRG 和原方法保持等语义。本文按调用方需求说明 301、302、303、307、308 的选择,并给出带中文注释的可复用处理器。213 收藏 -
go/constant.BinaryOp 中 token.QUO 保留 Int 除法的有理数结果,而 token.QUO_ASSIGN 强制返回整数商。本文用最小示例解释两者的实现分派、与 Go 编译器常量规则的关系,以及选择时的输入和异常边界。213 收藏 -
Go 反射读取复数时,先用 IsValid 和 CanComplex 判断,再调用 Complex;本文梳理 Complex64、Complex128、指针、接口及普通值的分支边界,给出可复用的安全读取函数。213 收藏 -
Go 的 -race 会在运行时观察并发访问,因此内存和执行时间都会增加。本文拆解开销来源,并给出提交级、合并级和真实负载的测试分层方案。212 收藏 -
Go encoding/json/v2 中旧的 inline 标签为什么不生效?本文说明 Go 1.27 已改用 embed,并梳理可嵌入字段的类型、匿名字段和显式名称边界。212 收藏 -
Go go-ical 的 TEXT 属性不能把逗号、分号、反斜杠和换行直接拼进线格式。本文说明 SetText、SetTextList、Text、TextList 的选择,以及业务换行、列表分隔和物理折行的边界。212 收藏 -
用短作用域请求函数说明Go HTTP响应体的关闭责任,覆盖状态异常与读取失败,区分EOF、Close和连接复用,并处理循环defer及流式接口的所有权。212 收藏 -
Go bitset 提供 SymmetricDifference 与 InPlaceSymmetricDifference。本文用两组编号标记说明对称差、原地修改、结果遍历以及高编号稀疏数据的边界。212 收藏 -
Go regexp.Regexp.ReplaceAllStringFunc 适合让每个匹配结果参与替换计算。本文对比固定模板替换,说明回调参数、$ 字符边界、未匹配文本保留和迁移检查方式。212 收藏 -
Go csv.Reader.ReadAll 适合一次读取规模可控的 CSV。本文说明成功时的 nil 错误语义、io.EOF 边界、ParseError 定位方式,以及何时应改用逐条 Read。212 收藏 -
Go TLS 服务端没有按 SNI 返回证书时,先检查 ClientHelloInfo.ServerName 是否存在、证书索引是否按规范化域名匹配,以及 GetCertificate 的回退优先级。本文给出带默认站点和错误诊断的最小配置。212 收藏