-
Go encoding/hex.NewDecoder 适合把十六进制字符流转换为字节流。本文说明分块读取、奇数长度输入、非法字符和 io.ErrUnexpectedEOF 的区别,帮助你正确收尾而不是把不完整数据误判成正常结束。
-
Go strconv.AppendQuote 会把字符串追加成带双引号的 Go 字符串字面量。本文用日志字段示例说明如何复用 []byte 缓冲区、处理引号和控制字符,并比较 AppendQuote、Quote、QuoteToASCII 与 AppendQuoteRune 的使用边界。
-
Go 通过 reflect.Value 反射写入整数时,不能只看输入是不是 int64,还要判断目标 Value 的 Kind 和可表示范围。本文说明 OverflowInt 的判断对象、整数边界、错误 Kind 处理和写入前检查方式。
-
Go 字符串按字节截断时可能切断中文或表情的 UTF-8 编码。本文用 unicode/utf8.ValidString、range 和 RuneLen 实现按字节上限保留完整 rune,并说明非法输入、零值上限与字符数限制的区别。
-
Go regexp.Regexp.String 返回编译时使用的正则表达式文本,适合做配置回显和诊断日志。本文对比 String、MatchString、FindString 与 MarshalText 的职责,并说明空指针、动态规则和敏感日志的使用边界。
-
Go 1.25 为 sync.WaitGroup 增加了 Go 方法,把任务计数、goroutine 启动和完成收口组合起来。本文用一个固定任务集合说明 WaitGroup.Go 的最小写法、Wait 调用时机、panic 边界,以及什么时候仍应使用 Add/Done。
-
Go 的 RawStdEncoding 是使用标准 Base64 字母表但省略等号补位的编码器。本文说明它与 StdEncoding、RawURLEncoding 的区别,给出无填充文本的编码、解码、错误处理和边界选择。
-
把配置中的超时统一写成 500ms、2s 这类带单位字符串,在 Go 程序入口解析为 time.Duration,再复用于 context、HTTP 客户端和定时任务,避免裸整数造成单位误读。
-
Go time.Time.Compare 返回 -1、0、1,适合把两个时间点的先后关系统一接入排序和状态判断。本文说明返回值、与 Before/After/Equal 的选择、排序回调以及零值和单调时钟边界。
-
Go HTTP/1 处理器默认会先消费未读请求体,再开始写响应。本文用 ResponseController.EnableFullDuplex 说明如何在同一处理器中按块读取请求并持续写出响应,以及不支持、刷新和错误处理的边界。
-
Go time.Time.AddDate 按日历字段移动日期,不等于固定增加若干小时。本文解释跨月归一化、Location 与夏令时造成的时长差异,并给出 Add 与 AddDate 的选择边界和回归检查思路。
-
Go time.ParseInLocation 可通过有限布局列表兼容 RFC3339、本地日期时间与日期。本文给出显式默认时区、匹配标签和错误返回的原创接口,并说明小数秒、日期语义及时间戳的适用范围。
-
Go time.Time 默认通过 MarshalJSON 输出带引号的 RFC 3339 时间字符串,并保留有意义的子秒精度。本文说明纳秒尾随零、时区偏移、Location 名称、单调时钟、零值和错误边界,帮助接口设计避免误判精度丢失。
-
Go time.Time.Weekday() 返回星期值,Weekday.String() 可直接得到英文名称;如果界面需要中文,应保留星期值并在展示层显式映射。本文给出最小写法、零值与时区边界,以及 API 返回结构的选择建议。
-
Go time.Ticker 的 tick 不是可靠事件队列,接收方变慢时可能被调整或丢弃。本文说明如何定位高频消费过慢,并按最新状态、全部事件和退出清理选择合适方案。