-
Go fmt.Errorf 通过 %w 同时保留任务上下文与错误原因,调用方使用 errors.Is 和 errors.As 判断类别并提取详情。结合配置解析示例说明多层包装、多原因与 nil 的边界。
-
Go url.PathEscape 用于编码单个 URL 路径片段,不是整条 URL 或查询参数的通用编码器。本文结合动态资源标识、斜杠和空格等字符,说明 PathEscape 的使用位置,并比较 QueryEscape 与 url.URL 的选择边界。
-
Go bufio.Reader.Reset 会丢弃已有缓冲、重置读取状态并切换到底层 io.Reader,适合在批量处理多段输入时复用 Reader 对象。本文用字符串和文件场景说明复用方式、资源关闭责任、零值初始化、自身 Reset 以及旧缓冲数据的边界。
-
Go encoding/binary.Decode 适合把固定布局的字节切片按 LittleEndian 或 BigEndian 解析到结构体。本文说明字段限制、返回字节数、缓冲区不足,以及 Decode、Read、Encode 的选择。
-
Go netip.Addr.IsGlobalUnicast 用来判断地址是否属于全局单播语义,但它不等于公网可达或业务授权。本文从 ParseAddr 开始,结合私有地址、唯一本地地址、链路本地地址、组播和零值样例,给出可复用的分类函数与边界清单。
-
Go time.Duration.Round 会把时间间隔舍入到指定粒度的最近倍数,刚好过半时远离零点,非正粒度则原样返回。本文用紧凑示例说明它与 Truncate 的区别、字符串和毫秒输入的统一处理,以及定时器参数的边界。
-
Go 的 time.Duration 底层按纳秒计数,外部配置却常用毫秒。本文用单一转换入口区分裸整数、time.Duration 和字符串时长,说明定时器、超时参数、零值、负值与溢出边界,避免单位混用导致等待时间异常。
-
Go 定时轮询要立即执行一次,不能等待 time.NewTicker 的第一拍。把任务抽成函数先直接调用,再用 ticker.C 驱动后续周期,并用 context 控制退出。
-
Go 默认把接口中的 JSON 数字解码为 float64,超过安全精度时可能改变原始值。本文用 Decoder.UseNumber 保留 json.Number 文本,先用 json.Valid 和格式判断选择 Int64 或 Float64,再处理小数、越界和浮点误差。
-
本文说明如何用 Go httptrace.TLSHandshakeDone 记录 TLS 握手成功或失败,区分连接复用、握手状态与 HTTP 请求结果,并处理回调并发和敏感日志边界。
-
TCP 是字节流,单次 Read 不保证拿到完整网络帧。本文用 io.ReadFull 读取固定帧头和帧体,结合 binary.BigEndian 解析长度,并说明 EOF、UnexpectedEOF、超长帧和持续连接循环的处理边界。
-
Go encoding/csv 可以用 Reader.Comment 忽略指定格式的注释行,连续分隔符产生的空字段仍会保留为字符串空值。本文给出逐条读取、字段数约束、空白处理和解析错误的生产写法。
-
Go bufio.Reader 读取长记录时,使用 ReadBytes 处理单字节分隔符与 EOF 尾部数据;需要业务长度上限时,用 ReadSlice 分片复制并在追加前限制累计字节数。
-
Go 的 os.ReadFile 会把完整文件返回为 []byte。本文从内存边界出发,说明什么时候继续使用它,什么时候改用 os.Open、io.Copy、io.LimitReader 或有界逐行读取。
-
Go os.Geteuid 返回当前进程的有效用户 ID。本文用一个跨平台示例区分有效 UID、真实 UID 与有效组 ID,说明 Unix 与 Windows 的返回差异,并解释为什么它不能单独充当权限授权依据。