-
Go unicode/utf8.RuneLen 返回单个 rune 编码成 UTF-8 所需的字节数:正常值为 1 到 4,非法 Unicode 值返回 -1。本文区分 RuneLen、len 和 RuneCountInString,并说明 RuneError 与非法 rune 的边界。
-
bytes.EqualFold 可以比较两个字节切片在 UTF-8 语义下是否经过简单 Unicode 大小写折叠后相等。本文从 ASCII 标识的实际场景出发,解释长度、空切片、非字母字节和非 UTF-8 数据的边界,并给出带封装函数的 Go 示例。
-
Go bytes.Repeat 会返回由多个 b 拼成的新字节切片,但负数次数或结果长度溢出会触发 panic。本文从固定填充和测试数据场景出发,说明零次数、空输入、参数保护、结果规模和改用流式写入的边界。
-
bytes.Buffer.Bytes 返回未读数据的共享切片,并非独立快照。本文解释修改、Reset 后复用与异步交付的风险,给出复制再复用的示例,并区分同步借用、长期保存和并发访问的处理方式。
-
bytes.Buffer.Reset 会清空未读内容、把偏移恢复为零,同时保留底层存储供后续写入。本文用消息组装示例说明 Len、Cap、Reset 与 Truncate(0) 的区别,以及复用时的所有权边界。
-
Go time.Duration 以纳秒整数保存时间间隔,Microseconds 返回 int64 微秒数。本文说明正数、负数和不足一微秒时的向零截断边界,并给出计时与超时判断中的使用方式。
-
Go math/bits.OnesCount64 接收 uint64 并返回其中 1 bit 的数量。本文用位掩码示例说明调用方式、返回值和零值、全 1 值及输入类型选择。
-
strings.Builder.Reset 会清空已写内容;复用时应分别观察 Len 与 Cap,再按下一轮写入规模决定是否 Grow,并避开复制非零 Builder 的风险。
-
Go strings.CutPrefix 同时返回去除固定前缀后的文本与匹配标志。通过批量标识解析示例,说明空前缀、空余串、大小写、重复前缀和不匹配原文的处理,并分离前缀判断与业务校验。
-
bufio.Reader.UnreadRune 不是任意读取后的通用回退按钮,它只接受紧邻 ReadRune 的一次回退。本文从源码状态、ErrInvalidUnreadRune 触发条件和 UTF-8 解析示例说明严格配对规则。
-
Go 的 bufio.Reader.Discard 用于消费并跳过指定数量的字节。本文用一个固定前缀读取小项目说明 discarded 与 err 的含义,重点处理短读取、EOF、缓冲区边界和负数参数,并比较 Peek、Read 与 io.ReadFull 的适用场景。
-
Go 的 x509.CertPool.AddCert 可以把已解析的自签名或内部 CA 证书加入信任池。本文从 PEM 解析、系统根池组合和 tls.Config.RootCAs 三个连接点说明正确用法,并区分未知 CA、主机名不匹配与证书过期等常见错误。
-
用 strconv.IsPrint 按 rune 判断字符是否适合进入可读日志,说明空格、控制字符、UTF-8 合法性与日志脱敏之间的边界,并给出检查和过滤代码。
-
Go net/http/pprof 默认会注册一组运行时诊断处理器,但诊断入口不应该跟业务接口一起匿名暴露。本文用专用 ServeMux 和鉴权中间件把请求从入口、校验、profile 输出到工具消费串成一条链,并说明拒绝响应、采集时长和关闭诊断服务的边界。
-
Go runtime/trace.StartRegion 返回一个需要在同一 goroutine 中结束的 Region。本文用最小 trace 接入示例说明 defer、regionType、嵌套和 goroutine 边界,并比较 StartRegion、WithRegion 与 NewTask 的适用场景。