Go教程技术文章
-
用 slog.NewLogLogger 把旧 log.Logger 调用桥接到 slog.Handler,说明固定级别、Handler.Enabled 过滤、文本输出和结构化字段的边界。109 收藏 -
用 Go archive/tar 读取 tar 条目的 PAXRecords 扩展属性,本文覆盖 Reader.Next、键存在判断、命名空间、Xattrs 等价关系和写入优先级。318 收藏 -
Go expvar 可通过JSON接口暴露进程变量。本文从一个小服务出发,讲解指标语义、一次注册、显式路由、本机监听及采集结果的解释。409 收藏 -
本文用 Go 标准库 debug/plan9obj 读取自有 Plan 9 a.out 文件的符号表,讲清 Symbols 返回的 Sym 字段、Open 与 Close 的调用顺序,以及 ErrNoSymbols 与普通读取错误的区别。464 收藏 -
Go html/template 的 Delims 可以在解析前切换模板动作分隔符。本文用 [[ ]] 示例说明设置时机、Parse 与 Execute 的边界、旧语法表现和多模板集合的处理方式。352 收藏 -
Go text/template 的 FuncMap 用来把 Go 函数注入模板。本文从解析前注册开始,说明单返回值、值加 error、管道传参和同名替换的边界,并给出可直接改造的模板示例。125 收藏 -
Go unicode.SimpleFold 每次返回 Unicode simple case folding 等价链中的下一个 rune。本文用可终止的回环遍历收集等价字符,并比较它与 ToLower、ToUpper 及 UTF-8 校验的适用边界。428 收藏 -
Go hash/crc64.Update 接收当前 CRC64 值、同一个 Table 和一段字节,返回加入该分块后的新校验值。本文说明怎样按原顺序连续更新,并用 Checksum 对照整块结果,避免每块重置或更换 Table。226 收藏 -
Go unicode/utf16.AppendRune 接收一个 rune,把它的 UTF-16 编码追加到已有的 []uint16 切片并返回扩展后的切片。本文说明如何接回返回值、处理不同码点以及理解非法码点的 U+FFFD 替换。220 收藏 -
Go encoding/base64.AppendEncode 会把 Base64 结果追加到已有字节切片并返回扩展后的切片。本文说明 dst 前缀、EncodedLen 容量预留,以及 StdEncoding、RawStdEncoding 和 URLEncoding 的选择边界。113 收藏 -
用一个有界任务队列说明 Go sync.Cond 的条件等待、关联锁、Wait 循环以及 Signal 与 Broadcast 的选择,重点解释为什么被唤醒后仍要重新检查共享状态。235 收藏 -
sync.OnceFunc 返回的函数不提供是否执行、执行中或初始化成功的查询接口。本文用 atomic.Uint32 设计外部状态,把可观测性与一次性执行职责分开,并处理并发读取与 panic 边界。202 收藏 -
Go strconv.ParseFloat 的 bitSize 选择浮点精度而非小数位数。本文用传感器读数入口说明舍入、范围错误、NaN与无穷大,以及业务上下限的处理。424 收藏 -
Go strconv.AppendQuote 可以把字符串以带引号的转义形式追加到已有 []byte。本文从容量预算、Quote 对比、控制字符和无效 UTF-8 边界出发,给出低分配写法与 Benchmark 记录方法。372 收藏 -
本文用一个升序整数切片说明 Go sort.Find 的比较函数写法、found 结果判断、重复值定位和插入位置边界,重点解释为什么 cmp 必须保持正数、零、负数三段结构。237 收藏