Go语言技术文章
-
Go 模块代理返回 404 和 410 时,命令通常都会按 GOPROXY 顺序回退;真正需要排查的是请求资源、分隔符和其他终止错误。本文用下载命令拆开判断路径。107 收藏 -
Golang · Go问答 | 1星期前 | 并发安全 · goroutine · Go问答 · Go结构化并发 runtime/secret并发读取 secret.Do goroutine Go密钥生命周期 WaitGroup敏感数据
runtime/secret 会让作用域内新建的 goroutine 继承秘密模式,但不会替你同步共享切片。本文用结构化并发说明密钥只读共享、worker 独立状态、公开结果复制、取消等待与平台降级的正确边界。107 收藏 -
用 Go unique.Handle 把规范化后的 HTTP 方法与路径组合成可比较身份,演示并发路由注册中的去重方式与适用边界。107 收藏 -
Go time.ParseDuration 只接受固定的 duration 单位。本文从配置输入场景出发,说明中文单位、未知单位、缺少单位和合法复合时长的处理方式,并给出清晰错误提示的写法。107 收藏 -
Go SJSON 的 Set 会把 Go 值按 JSON 规则编码,SetRaw 则直接写入原始 JSON 片段。本文用数字、字符串、数组和对象示例说明两者的类型边界,并给出动态 raw 输入的校验方案。107 收藏 -
Go 循环中使用 defer 关闭文件时,defer 会等所在函数返回才执行,文件多时可能造成句柄累积。本文用局部函数和显式 Close 两种方式改写,并说明错误处理与适用边界。107 收藏 -
围绕 Go encoding/xml 的 Decoder.Strict,说明如何隔离宽松解析、配置 AutoClose 与 Entity,并在容错后继续校验 XML 结构和业务字段。106 收藏 -
说明 Go net 连接 IPv6 链路本地地址时的 zone、方括号、tcp6、JoinHostPort 和 DialContext 参数边界。106 收藏 -
Go 的 http.FileServer 不会自动为单页应用回退到 index.html。本文用 fs.Stat、Accept 与扩展名判断区分真实静态文件、前端路由和缺失资源,并给出支持 embed.FS 的完整 Handler。106 收藏 -
Go Expr 注册自定义函数时,可以用 expr.Function 提供实现回调,再用函数类型声明参数与返回值,让表达式的类型错误在 Compile 阶段暴露。本文给出可复用的规则示例,并区分编译错误、运行错误与正常业务 false。106 收藏 -
go-toml/v2 可以把 TOML 的 [[servers]] 表数组直接解码到 Go 的 []Server。本文从结构体标签、Unmarshal、流式 Decoder、严格未知字段和 DecodeError 几个边界,整理一套可直接复用的写法。106 收藏 -
本文用 Go 标准库说明 Server.ConnContext 与 Request.Context 的关系,给出连接级信息注入、处理器读取、连接复用和请求取消的最小写法与边界。106 收藏 -
Go 1.23 的 iter.Seq 可以直接用于 range 函数。本文从 yield 的返回值出发,说明 break 怎样提前停止消费、迭代器怎样响应 false,以及自然结束、单次迭代和错误边界。106 收藏 -
B.Loop 只负责迭代与计时,不会恢复循环外可变状态。切片长度、容量、map 内容或缓冲区会跨轮累积,导致每次操作不再等价。本文用可运行示例区分新建成本与复用成本,并说明重置是否计时。105 收藏 -
Go text/template 自定义函数时,关键是先用 Funcs 注册,再让函数返回值或值加 error。本文用一个带业务校验的示例说明 Parse、Execute、errors.As 和部分输出边界。105 收藏