-
区分Go Timer Reset的新旧通道语义、兼容设置与已投递业务事件,给出单拥有者处理方式和时间观察样例,解释Reset布尔值、旧通知清理及AfterFunc回调边界。
-
Go time.ParseInLocation 解析结果看起来偏移,通常是无时区字符串被按不同 Location 解释,或把同一时刻的 UTC 展示误当成时间被修改。本文用 Parse、ParseInLocation、Zone、Location 和 Equal 拆解原因,并给出稳定的输入与排障写法。
-
Go 的 time.Format 布局中的 MST 只是时区缩写占位符,不会单独完成时区转换。本文区分 MST、数值偏移、Location 和 In 的职责,并说明带缩写字符串解析时的零偏移边界。
-
本文围绕 Go httptrace.PutIdleConn 解释连接回收到 Transport 空闲池时的 nil 与错误信号,并对比 DisableKeepAlives、响应体关闭和 HTTP/2 下的判断边界。
-
Go 1.26 为 testing.T 增加 ArtifactDir:用它取得当前测试或子测试独立的产物目录,把失败现场写入其中;配合 -artifacts 和 -outputdir,本地与 CI 都能保留测试文件。
-
encoding/json v1 解码到结构体时会优先精确匹配,也接受大小写不敏感的字段匹配,因此 JSON 键大小写不同仍可能填充结构体字段。本文解释标签、map、DisallowUnknownFields 与严格键名预检的边界,并说明 v2 的差异。
-
Go HTTP 客户端收到响应后如果忘记关闭 Response.Body,Transport 可能无法复用持久连接,循环请求中就会出现空闲连接变少、重复建连和资源占用升高。本文按错误分支、读到 EOF、Client/Transport 复用三个层面给出排查和修复方式。
-
Go HTTP 请求返回 EOF 时,先按 Client.Do、Response.Body 读取和 JSON 解码三个阶段定位,再结合状态码、正文长度和接口契约区分服务端连接提前结束、空响应、传输截断与解析失败。
-
bytes.Buffer.String 返回调用时未读部分的字符串,后续 Write、Read、Reset 不会修改已经取出的 string。本文对比 String、Bytes 和 strings.Builder 的内容范围、生命周期与适用边界。
-
Go 的 panic 和 recover 只作用于当前 goroutine 的调用栈。本文解释外层 recover 为什么接不到子 goroutine 的 panic,并给出在 goroutine 内部恢复、传递错误和选择 error 的实用写法。
-
Go 类型断言的单值写法在目标类型不匹配时会 panic。本文用 comma-ok 形式、nil 边界和 type switch,说明怎样安全处理接口中的动态类型。
-
Go 指针接收者方法能否由值变量调用,取决于方法集和可寻址性。本文用方法集、接口实现与函数返回值边界解释报错原因,并给出接收者设计建议。
-
Go regexp.Regexp.FindReaderIndex 用 io.RuneReader 搜索流式输入时,返回值是匹配区间的字节偏移而不是字符下标。本文说明 m[0]、m[1]、nil 和超前读取的含义,并给出选择其他 API 的边界。
-
Go sync.Cond 的 Signal 和 Broadcast 只是唤醒等待者,不能替代共享条件本身。本文用一个受 Mutex 保护的队列状态说明为什么 Wait 必须放在 for 条件循环中,以及如何在状态更新后选择 Signal 或 Broadcast,避免先检查后等待、误用 if 和忘记解锁。
-
Go crypto/ecdh.NewPublicKey 会按指定曲线校验公钥字节并返回 PublicKey。本文说明 NIST 曲线与 X25519 的编码边界、解析错误处理,以及如何在 ECDH 前保证本地私钥和对端公钥使用同一条曲线。