Go语言技术文章
-
Golang · Go问答 | 1天前 | 标准库 · 时间处理 · Go问答 · Go 时区 time.Parse time.ParseInLocation time.Location 时间偏移 RFC3339
Go time.ParseInLocation 解析结果看起来偏移,通常是无时区字符串被按不同 Location 解释,或把同一时刻的 UTC 展示误当成时间被修改。本文用 Parse、ParseInLocation、Zone、Location 和 Equal 拆解原因,并给出稳定的输入与排障写法。297 收藏 -
Go GC 回收对象与向系统归还空闲页是不同工作,RSS 不会保证立刻下降。本文用原创采样程序区分 HeapAlloc、HeapIdle、HeapReleased 与系统内存口径,说明主动归还及软内存限制的边界。296 收藏 -
reflect.TypeFor 只负责获取泛型类型的 reflect.Type,受限目录读取应交给 Go 1.24 的 os.OpenRoot 与 os.Root.Open。本文把两者组合成一个可复用的相对路径读取示例,并说明版本、路径和资源关闭边界。292 收藏 -
Go context.WithValue 取不到值,通常不是 Context 自己丢了数据,而是写入和读取使用了不同的键类型、键值或 Context,或者取值后的类型断言不匹配。本文按这四个边界给出排查与封装方法。290 收藏 -
filepath.WalkDir 不会替业务自动定义目录边界。本文从根路径检查、回调错误、DirEntry 类型判断和 SkipDir 语义入手,说明怎样写出可控的目录遍历入口,并补充符号链接、操作系统分隔符和文件根节点等边界。287 收藏 -
使用 Go os.DirFS 读取目录时,先用 fs.ValidPath 判断输入是否满足 io/fs 名称规则,再根据目录是否可信选择 os.DirFS 或 Go 1.24+ 的 os.OpenRoot。本文区分语法边界与符号链接安全边界,并给出选择表和可运行示例。286 收藏 -
go test -shuffle 暴露出结果不稳定时,先保存随机种子,再区分共享状态、并行调度和测试缓存。本文用固定种子复现问题,并给出修复后的回归命令。286 收藏 -
Go reflect 修改字段时 CanSet 为 false,通常是反射值不可寻址、忘记从指针 Elem,或字段未导出。本文用结构体和 map 对照示例说明安全赋值路径与排查边界。284 收藏 -
判断 Go net/http.ResponseController 的输入边界,要确认 Writer 来源、Unwrap 包装关系和 Handler 生命周期。本文提供完整响应示例,区分 ErrNotSupported 降级与真实错误,并说明 Flush 和写期限的限制。284 收藏 -
bytes.Buffer.String 返回调用时未读部分的字符串,后续 Write、Read、Reset 不会修改已经取出的 string。本文对比 String、Bytes 和 strings.Builder 的内容范围、生命周期与适用边界。282 收藏 -
围绕 Go maps.Clone 设计配置覆盖接口,区分缺失键、nil 删除与空字符串赋值,明确成功返回可写副本、非法字段错误和失败保留原配置的约定,并提供完整示例。282 收藏 -
用 Go 1.24 的 runtime.AddCleanup 管理已有 []byte 缓冲区:从 sync.Pool 复用容量,显式 Close 与 GC 兜底共享幂等释放协议,并说明引用边界、Stop、KeepAlive 和并发约束。278 收藏 -
Go os.Lstat 报错时,用 errors.Is 区分不存在、权限不足等原因,用 errors.As 提取 PathError 上下文。结合原创清单工具说明错误链包装、符号链接语义与未知错误的保留方式。275 收藏 -
Go 集成测试可在昂贵初始化前判断 testing.Short,并通过 t.Skip 标记跳过。本文给出最小写法与完整 HTTP 示例,说明辅助函数、子测试、TestMain、名称筛选及测试缓存的边界。273 收藏 -
Golang · Go问答 | 1天前 | 标准库 · 错误处理 · Go问答 · Go Base strconv.ParseInt bitSize ParseInt结果 NumError ErrRange ErrSyntax
strconv.ParseInt 本身是确定性的,结果看似不稳定通常来自 base、bitSize、输入前缀或忽略错误。本文用架构边界随笔的方式拆解参数契约、NumError、ErrSyntax 与 ErrRange,帮助把跨环境解析规则固定下来。273 收藏