Go教程技术文章
-
Go packages.Load 可加载显式 Go 文件集合,也可用 file= 查询所属包。本文说明两者的范围差异,给出文件列表封装,并解释 Mode、路径处理和两层错误。378 收藏 -
Go maps.Equal 根据键集合与对应值比较两个 map。本文用配置对照示例说明顺序、nil 与空 map、键缺失与零值的区别,并介绍切片值应使用 EqualFunc、接口动态值与 NaN 的注意事项。378 收藏 -
Go slices.Compact 只会删除连续相等元素,直接用于 []error 时还会遇到错误实例身份和可比较性的边界。本文用 CompactFunc 按错误码、消息保留第一条原始错误,并说明何时应该改用 map 做全局去重。378 收藏 -
net/netip.Prefix.Overlaps 用来判断两个 CIDR 前缀是否包含共同 IP,但地址族、零值前缀、IPv4 映射 IPv6 和 /0 边界都会影响结果。本文用一段可运行的 Go 代码拆开这些判断。377 收藏 -
Golang · Go教程 | 2个月前 | Go教程 · go fix modernizer Go 1.27 atomictypes embedlit slicesbackward unsafefuncs
Go 1.27 给 go fix 增加 atomictypes、embedlit、slicesbackward 和 unsafefuncs 四类 modernizer。本文从真实升级场景出发,说明如何按代码边界选择工具、审查改动并保留可回退的迁移证据。377 收藏 -
sync.OnceFunc 包装的函数如果首次执行 panic,被包装函数不会重试,但包装函数之后每次被调用都会使用同一个 panic 值再次 panic。本文给出最小示例、与 sync.Once.Do 的差异,以及线上恢复、失败缓存和重试设计建议。377 收藏 -
以 Go 1.27 泛型方法为背景,演示如何保留旧 Loader 接口、提取共享核心、增加具体类型泛型方法和包级适配函数,并按可回滚顺序迁移调用方。377 收藏 -
用 Go net/netip 完成地址解析、IPv4 映射识别、CIDR 前缀判断和稳定格式化,理清 Is4、Is4In6、Is6、Unmap、ParsePrefix 与 Masked 的使用边界。377 收藏 -
Go iter.Seq 用统一接口组合生成、筛选和转换,示例说明消费时计算、提前停止、可重入源与结果物化的取舍,避免把惰性遍历误当作缓存、快照或异步任务。377 收藏 -
Go maps.All 可以把 map 转成键值迭代器,直接用 range 读取每个键和值。本文说明它的使用方式、无序语义,以及与 maps.Insert、maps.Collect 的组合边界。377 收藏 -
本文说明 Go go-flags 中 group 与 namespace 的区别,用嵌套结构体把相关选项组织到命名参数组,并解释解析后的字段映射、命名冲突和自定义分隔符边界。377 收藏 -
Go 的 netip.Addr.StringExpanded 可以把 IPv6 地址输出为不使用双冒号压缩的完整八组格式。本文从解析、地址族判断和无效值边界出发,给出适合日志、序列化与固定格式对接的写法。377 收藏 -
Golang · Go教程 | 2个月前 | 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 收藏