Go教程技术文章
-
Go image/draw 的核心是让目标矩形 r.Min 与源点 sp 对齐。本文从目标画布、偏移坐标、Over 与 Src、非零边界和裁剪规则出发,给出可复用的偏移绘制方案。294 收藏 -
围绕 Go sql.DB.SetConnMaxLifetime 说明连接年龄、空闲时长与连接数量的区别,给出连接轮换配置、DBStats 观察方法和生产边界。332 收藏 -
Go cipher.StreamReader 可以把已有的 cipher.Stream 与 io.Reader 组合成按需解密的读取器。本文说明密文 Reader、流密码、分块读取、EOF 处理、资源关闭和 AEAD 安全边界。270 收藏 -
说明 Go TurkishCase 对 I、i、İ、ı 的映射关系,给出 rune 与 strings 的写法,并梳理从默认映射切换时的字节长度、存量键和回归样本。247 收藏 -
Go debug/gosym.Table.PCToFunc 接收一个 uint64 程序计数器,返回包含该地址的 *gosym.Func;查询不到时返回 nil。本文从已加载的符号表出发,说明如何读取函数名、Entry、End,并区分函数查询与源码行号查询。390 收藏 -
用 go tool trace -d=parsed 把 Go 执行追踪文件转换为解析事件文本,掌握输入准备、输出保存、调试模式区别与失败边界。459 收藏 -
Go 的 encoding/json 默认会忽略结构体中不存在的 JSON 字段。本文说明如何用 Decoder.DisallowUnknownFields 把请求字段边界前移到解码入口,并处理未知字段、类型错误、尾随 JSON 与接口兼容性取舍。161 收藏 -
Go log/slog.Group 可以把多个属性收拢到同一个日志组中。本文从请求日志场景说明 key、属性参数、空键和动态属性的处理方式,并比较 Group、GroupAttrs 与 WithGroup 的选择边界。225 收藏 -
通过带业务字段的 QuotaError 示例,说明 Go errors.Is 自定义 Is 方法的浅比较规则、%w 包装、目标方向与 typed nil 的处理。310 收藏 -
Go testing.T.Output 返回一个适合多行诊断的 io.Writer,但不会自动补换行。本文说明并发写入如何按记录同步、行缓冲何时刷新,以及测试函数和父测试结束后为何不能继续 Write。248 收藏 -
用 Go debug/elf.File.DWARF 从 ELF 文件取得 DWARF 数据,说明打开与关闭边界、调试信息缺失的处理,以及如何按条目读取编译单元和函数名。138 收藏 -
Go errors.Join 可以把多个校验错误合并成一个返回值,同时保留 errors.Is 和 errors.As 的判断能力。本文从一个批量配置校验器出发,说明 nil 过滤、哨兵错误、自定义错误类型和错误展示之间的边界。492 收藏 -
Go os.Root.OpenFile 可以把文件名解析限制在已打开的根目录下。本文说明如何创建工作区 Root、按相对路径读写文件、选择 flag 与 perm,并处理越界路径、非法权限位和资源关闭问题。238 收藏 -
用 slog.NewLogLogger 把旧 log.Logger 调用桥接到 slog.Handler,说明固定级别、Handler.Enabled 过滤、文本输出和结构化字段的边界。109 收藏 -
用 Go archive/tar 读取 tar 条目的 PAXRecords 扩展属性,本文覆盖 Reader.Next、键存在判断、命名空间、Xattrs 等价关系和写入优先级。318 收藏