-
Go 反射读取指针指向的结构体字段时,需要先解引用并处理 nil、无效 Value、字段不存在和未导出字段。本文用一个通用读取器说明 ValueOf、Indirect、FieldByName 与 CanInterface 的协作顺序。
-
netip.ParseAddr 只解析 IP 地址,因此会拒绝带端口的完整端点。需要处理 host:port 时应改用 ParseAddrPort;IPv6 端点要写成 [地址]:端口,端口必须是数字。本文还说明 AddrPortFrom、区域标识、端口 0 和 MustParse 的适用边界。
-
reflect.TypeFor[T]() 适合固定泛型目标类型,但它不会替你判断运行时值。本文从 nil、Kind、AssignableTo、Implements 和 ConvertibleTo 五个角度,写出可复用的 Go 反射类型边界判断。
-
说明 reflect.TypeFor[T]() 只负责取得泛型类型元数据,如何把它作为类型计划缓存键,再由调用方通过 dst[:0] 复用已有 []byte 容量,并处理异步消费与超大容量边界。
-
os.Stat 跟踪符号链接后描述目标对象,Lstat 描述链接本身,Readlink 返回保存的目标路径。通过正常与悬空链接的对照示例,解释类型位、相对目标路径、错误分类和路径变化的处理边界。
-
迁移到 Go maps.Clone 时,先明确 nil、浅复制和并发访问边界。本文提供规则配置的受限复制示例,说明如何复制内部标签切片、保留可写输出约定,并区分标准库行为与应用限制。
-
介绍Go httptrace识别连接复用的方法,区分Reused、WasIdle与IdleTime,通过共享Transport示例说明HTTP/2、响应体和并发回调的观察边界。
-
Go 反向代理中 Host 变了,通常不是请求丢失,而是 Request.Host、URL.Host 与 ProxyRequest.SetURL 的职责不同。本文结合 ReverseProxy 的 Rewrite 写法,说明如何保留入口 Host、设置上游 Host,并排查代理链中的字段来源。
-
bufio.Reader.Peek 可以在不推进读取位置的情况下查看输入前缀,适合把一个流交给不同解析器。本文用一个小型输入分发工具说明 Peek 的组合方式、缓冲区边界、短输入和返回切片生命周期。
-
通过 bufio.Reader.Peek 直接查看 Reader 内部缓冲区中的前缀,避免为短暂判断创建副本;同时讲清 Reset 复用 Reader、短读错误、ErrBufferFull 与返回切片的生命周期。
-
Go url.PathEscape 用于编码单个 URL 路径片段,不是整条 URL 或查询参数的通用编码器。本文结合动态资源标识、斜杠和空格等字符,说明 PathEscape 的使用位置,并比较 QueryEscape 与 url.URL 的选择边界。
-
Go image/png 通过 png.Encoder 的 CompressionLevel 控制编码策略,支持默认、无压缩、最快和最高压缩四种选择。本文用完整示例说明怎样接入 io.Writer、怎样处理编码错误,以及为什么 BufferPool 不能替代压缩级别设置。
-
Go 的 url.JoinPath 适合在已有 URL 上拼接路径段并清理多余斜杠、点段,同时保留 base 中的查询参数和片段。本文说明路径段转义、错误处理、URL.JoinPath 选择和常见边界。
-
Go time.Time.AppendFormat 会把时间按 layout 追加到已有字节切片。本文用 -07:00、Z07:00 和 RFC3339 说明时区偏移布局、Location 来源、UTC 的 Z 表示以及常见误区。
-
用 bytes.Buffer 的写入、读取、Grow 和 Reset 场景区分 Cap 的底层总容量与 Len 的当前未读长度,说明预分配、复用和内存排查时各自应该看什么。