Go教程技术文章
-
Golang · Go教程 | 3星期前 | Go教程 · go fix modernizer Go 1.27 atomictypes embedlit slicesbackward unsafefuncs
Go 1.27 给 go fix 增加 atomictypes、embedlit、slicesbackward 和 unsafefuncs 四类 modernizer。本文从真实升级场景出发,说明如何按代码边界选择工具、审查改动并保留可回退的迁移证据。377 收藏 -
Golang · Go教程 | 3星期前 | HTTP服务 · Go教程 · 接口设计 · net/http Go 1.27 MaxHeaderValueCount MaxHeaderBytes HTTP安全
Go 1.27 为 net/http.Server 增加 MaxHeaderValueCount。本文说明它与 MaxHeaderBytes 的边界、同名请求头的计数方式,以及上线时如何组合配置并平滑收紧。376 收藏 -
Go 接收多种 JSON 事件时,可用 json.RawMessage 保留 payload,先解析 type,再把内容交给对应结构,避免 map[string]any 带来的类型断言和扩展混乱。376 收藏 -
Go 的 archive/tar 通过同一个 Writer 顺序写入多个条目。本文说明 Header.Size、WriteHeader、Write 和 Close 的配合关系,并给出用 Reader.Next 核对归档边界的原创示例。376 收藏 -
Go 的 regexp.Compile 使用 leftmost-first 规则,CompilePOSIX 使用 POSIX ERE 语法和 leftmost-longest 规则。本文用同一模式对比返回结果,并说明语法、子匹配和选型边界。376 收藏 -
用 GOOS、GOARCH 和 CGO_ENABLED=0 为 Linux ARM64 构建纯 Go 程序,并说明遇到 import C 或外部 C 库时应如何判断和处理。375 收藏 -
Go context.AfterFunc 适合绑定超时、上游取消等退出路径的补偿清理。本文用连接读截止时间示例说明 stop 返回值、清理完成同步、幂等和正常完成路径的边界。375 收藏 -
strings.CutPrefix 不只是删除前缀,更重要的是用 found 明确控制后续分支。本文从协议识别、多个业务前缀、空前缀和旧 Go 版本兼容几个边界,整理一套可复用的判断写法。375 收藏 -
通过一个带节点句柄的任务队列,说明 Go container/list 中 Element 的归属、插入、移动、移除和常见生命周期边界。375 收藏 -
Go atomic.Value 适合保存读多写少的只读配置快照。本文从首次 Store、并发 Load、复制旧值到一次性替换,给出可复用的实现方式,并标出类型一致、原地修改和生命周期边界。375 收藏 -
Go HTTPS 客户端同时访问公网和企业内网服务时,可先复制系统根证书池,再追加业务 PEM 根证书,并通过 tls.Config.RootCAs 交给 HTTP Transport。本文给出配置代码、参数边界和排查清单。375 收藏 -
用 Go io.ReadFull 读取固定长度协议,区分 io.EOF 与 io.ErrUnexpectedEOF,并根据 n 和 err 做可靠的缓冲区验收。374 收藏 -
介绍 Go regexp 命名捕获组的读取方法:用 SubexpNames 对齐名称和匹配结果,用 SubexpIndex 定点取值,并安全处理 nil、-1、可选组和动态正则编译错误。374 收藏 -
Golang · Go教程 | 1星期前 | Context · 并发控制 · Go教程 · Go Deadline context.Context 取消信号 context.WithoutCancel
Go context.WithoutCancel 会继续沿父上下文读取 Value,但不继承取消信号、deadline、Err 和 Cause。本文用可观察的字段对照、异步收尾示例和检查清单,说明如何重新建立安全的任务退出边界。374 收藏 -
Go sync.Pool适合复用临时对象,但池中对象可能被GC自动丢弃。本文把对象复用链与生命周期指标拆开,用池外原子计数器记录New、Get、Put,再用基准指标判断是否真的降低了分配压力。374 收藏