Go语言技术文章
-
解释 Go math/big.Float.Text 的 format 与 prec 如何共同决定输出形态,比较 e、f、g、x、b、p 的参数语义,并给出固定数值的可读示例与边界判断。424 收藏 -
Go test 显示 cached 不代表测试代码再次运行。本文用 -count=1 做一次明确复查,并区分清理缓存、重复运行和 CI 排查时的使用边界。424 收藏 -
讲解 Go encoding/xml.Decoder.Token 如何流式扫描大型 XML,结合 DecodeElement、Skip、InputPos 与命名空间处理逐条读取记录。424 收藏 -
Go 标准库 maps.Clone 可以复制 map 的顶层键值结构,并保留 nil 输入的语义。本文用最小示例说明普通复制、nil 与空 map、浅复制边界、自定义 map 类型和旧环境替代写法。423 收藏 -
用互斥的 go:build 约束隔离 Go 的生产实现与测试替身,配合 go test -tags 和 go list 检查文件选择,避免测试代码误进入生产构建。423 收藏 -
讲清 Go time.FixedZone 的 name 与秒级 offset 语义,演示如何构造 UTC+08:00、转换已有时间并区分 FixedZone 与 LoadLocation。423 收藏 -
解释 Go 文件原子替换为什么仍会在异常重启后丢失,并给出文件 Sync、Rename 与父目录 Sync 的完整耐久写入顺序和可复用代码。423 收藏 -
Go bufio.Scanner 返回 token too long,通常是单个 token 超过默认缓冲上限。本文说明 Scanner.Buffer 的正确配置时机,并给出长记录切换 bufio.Reader 的处理方案。422 收藏 -
用 fstest.MapFS 构造内存文件系统,把 http.NewFileTransportFS 注册到 file 协议,再用 http.Client 验证静态资源读取、缺失文件 404 和响应体关闭边界。422 收藏 -
使用 go/parser 把同一 Go 包的多个源码文件解析到共享 FileSet,再调用 doc.NewFromFiles 生成包文档;同时说明 _test.go 示例、构建约束和 PreserveAST 的使用边界。422 收藏 -
Go 的 math.Round 明确定义为就近取整,恰好半数时远离零,因此 2.5 得 3、-2.5 得 -3。本文用边界测试对比 RoundToEven,并说明小数位与金额场景的选择。422 收藏 -
Go 的 Request.Body 是一次性读取流,307/308 重定向要保留原方法和请求体时,需要 GetBody 创建新的 body。本文说明 NewRequest 的自动填充、自定义 reader 的缺口和手动补齐方法。422 收藏 -
Golang · Go教程 | 4天前 | errgroup · goroutine · 错误处理 · go · Context · 并发调用 错误传播 SetLimit context取消 WithContext Go errgroup
使用 errgroup.WithContext 可以并发调用多个独立依赖,在首个非空错误出现时取消同组任务,并由 Wait 统一回收。本文给出结果收集、限流与延迟验证写法。422 收藏 -
Go 1.27 已支持普通泛型方法,但接口方法仍不能声明自己的类型参数。本文用最小签名拆解报错来源,并给出工具链、go.mod、包级函数和适配器的选择方法。422 收藏 -
用 Go io.MultiReader 按顺序合并多个输入流,再交给 io.Copy 统一消费;文章同时说明部分读取、非 EOF 错误、文件关闭和 MultiWriter、LimitReader 的选型边界。421 收藏