Go教程技术文章
-
围绕 Go bufio.Reader.Discard 说明完整跳过、部分跳过、EOF 和底层读取错误的判断方式,并给出固定字节跳过的安全封装与参数边界。199 收藏 -
围绕 Go io.Pipe 的同步读写关系,说明生产者如何用 PipeWriter.CloseWithError 把错误传给消费者,以及读端提前退出时怎样通知写端解除阻塞。170 收藏 -
用MaxBytesReader限制Go HTTP请求体的实际读取字节数,识别MaxBytesError并返回413,说明完整读取、部分数据丢弃、Content-Length和JSON解析边界。474 收藏 -
Go strconv.AppendQuoteRuneToASCII 可以把单个 rune 追加为带单引号的 ASCII Go 字符字面量。本文说明如何接住返回切片、处理非 ASCII 转义,并区分它与 QuoteRune、AppendQuoteRune 等相邻 API。372 收藏 -
本文围绕 Go crypto/cipher.NewGCMWithRandomNonce,说明如何让 Seal 自动生成并携带随机 nonce,再由 Open 自动提取 nonce 完成 AES-GCM 解密,并整理版本、密钥和密文长度边界。304 收藏 -
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 收藏