Go语言技术文章
-
Go log/slog 可以用 Logger.With 复用批次字段,用 LogAttrs 传递单条记录属性;自定义 Handler 注入动态字段时,应先 Clone Record,再转发 Enabled、WithAttrs 和 WithGroup,避免破坏结构化输出和额外分配边界。248 收藏 -
Golang · Go教程 | 3天前 | 网络编程 · 标准库 · 性能优化 · ip地址 · Go教程 · IPv6 批处理 Go ipv4 netip.Addr Prefix.Contains CIDR net/netip 减少分配 netip.Prefix
Go net/netip 判断地址是否属于指定网段,核心是预解析 netip.Prefix 与 netip.Addr,再调用 Prefix.Contains。本文说明 IPv4/IPv6 边界、解析错误和批处理复用值类型的写法,减少热点循环中的重复解析与额外转换。248 收藏 -
本文围绕 bufio.Reader Discard 的返回值、Buffered 边界和批处理复用策略,说明读取失败后怎样只清理确认过的残留数据,并解释 Discard、Reset 与按需复制的适用场景。248 收藏 -
讲清 Go types.Info.FileVersions 的 map 键值、文件版本与 Config.GoVersion 回退关系,并给出按原始 *ast.File 指针稳定读取的原创示例。248 收藏 -
在 go/types 中,两个 Named 类型可以拥有相同的底层类型,但它们的声明身份、方法集和类型参数仍然不同。本文用 UserID 与 OrderID 的例子拆开 Identical、Underlying、Obj、Methods 和泛型信息的区别,帮助静态分析工具选对判断入口。248 收藏 -
用 go/types 分析泛型签名时,TypeParam.Index 可以提供参数在参数列表中的零基位置。本文说明如何直接读取 TypeParamList,以及如何处理类型检查结果中的无序参数和未绑定参数。248 收藏 -
Go vendor 构建找不到新依赖,常因缓存已下载而项目快照未同步。本文区分模块声明、缓存与 vendor,给出单模块修复命令、工作区注意事项和交付判断方法。247 收藏 -
Go types.Info.TypeOf 用于从类型检查结果中查询 ast.Expr 的静态类型。本文用一个源码分析场景说明 Info 初始化、AST 表达式定位、TypeOf 返回值和 nil 边界,并区分 Types、Defs、Uses 与 Selections 的职责。247 收藏 -
Go HTTP/2 priority 没有生效时,先确认 Go 版本、HTTP/2 协议和服务端开关。本文解释 net/http.Server.DisableClientPriority 的布尔语义,以及自定义写调度器让该字段失效的边界。247 收藏 -
json.Unmarshal 负责解码,不自动执行必填校验。通过创建任务示例,说明指针字段如何保留合法 false、RawMessage 如何区分缺失与 null,以及业务对象转换和严格解码的边界。247 收藏 -
说明 Go TurkishCase 对 I、i、İ、ı 的映射关系,给出 rune 与 strings 的写法,并梳理从默认映射切换时的字节长度、存量键和回归样本。247 收藏 -
Go embed 读不到文件时,先区分空的 embed.FS、相对包目录错误和目录模式排除隐藏文件。本文用最小示例说明指令位置、变量类型、all: 前缀与 go list 检查边界。247 收藏 -
本文用 Go rtreego 实现二维矩形范围检索,说明 Spatial、Rect、SearchIntersect、LimitFilter 的用法,并整理空结果和对象更新时的排查清单。247 收藏 -
sync.Pool归还对象不等于立即释放内存,也不会自动关闭外部资源。文章解释容量保留、外部引用和所有权错误,给出按容量筛选缓冲区的示例及对象池适用判断。247 收藏 -
说明Go Glob空结果、路径转义与层级匹配的常见原因,给出同目录多模式共享枚举、结果切片复用和分批回调示例,并解释排序及内存边界。247 收藏