Go问答技术文章
-
go-toml 将不携带时区关系的本地日期、时间和日期时间,与带偏移的时间点分开处理。本文用 TOML 字面量、LocalDateTime、time.Time 和 AsTime(zone) 说明两者的语义边界与选型方法。419 收藏 -
Go 里传入 0644 却得到不同权限,通常要同时检查创建时的 umask 和文件是否已经存在。本文给出一套可复用的判断顺序与修正代码。419 收藏 -
Go 的 os.Rename 在目标文件已存在时按文档可以替换普通文件,但 Windows 仍可能因目标被占用、共享模式、只读属性、目录目标或非原子语义失败。本文用四个错误信号拆分原因,并给出同目录临时文件、关闭句柄和避免先删后换的可靠写法。419 收藏 -
Golang · Go问答 | 1星期前 | 标准库 · go · database/sql · Go database/sql NamedValue driver.NamedValueChecker ErrSkip ErrRemoveArgument
Go 数据库驱动可以通过 NamedValueChecker 接收自定义参数类型。本文用一个最小驱动侧示例讲清 Conn 与 Stmt 的检查顺序、值转换、ErrSkip 和 ErrRemoveArgument 的边界,帮助排查参数不生效或数量不匹配。419 收藏 -
Go Ants 开启 WithPreAlloc(true) 后调用 Tune,Cap 可能保持初始化值。本文从源码条件解释预分配队列与动态调优的边界,并给出固定容量、动态 Tune 和重建池的选择方法。419 收藏 -
gojq 把 Run 的查询输入和 input/inputs 读取的额外输入流分开设计。本文用 WithInputIter 与 gojq.NewIter 演示如何提供输入迭代器,并说明 Iter.Next 的结束、错误和自定义数据源处理方式。419 收藏 -
Go net/http.Transport 返回 error 时,先区分 HTTP 响应与传输失败,再沿错误链识别取消、超时、连接和 URL 原因,并据此安排日志与重试。419 收藏 -
Lip Gloss 的带颜色字符串包含 ANSI 控制序列,而中文和 Emoji 又可能占用多个终端单元格,所以 len 和 []rune 都不能代表显示宽度。本文按排障手册拆开长度口径,并给出 lipgloss.Width、lipgloss.Size 的替换方法。418 收藏 -
Go plugin 无法跨任意构建环境直接复用。本文按错误阶段解释工具链、共享依赖源码、构建参数和动态库差异,给出统一构建、符号加载与成套升级回退的方法。418 收藏 -
Go Close 负责关闭文件,不能替代 Sync 的持久化职责。区分 bufio.Flush 与文件同步,提供保留写入、刷新、同步、关闭错误的示例,并说明目录项与存储环境的保证边界。418 收藏 -
Go 中普通表单字段读不到,常见原因不是字段名,而是 application/x-www-form-urlencoded 与 multipart/form-data 的请求体、Content-Type 和解析入口没有对应。本文按场景给出客户端与服务端的配对写法。418 收藏 -
crypto/subtle.XORBytes 会按两个输入切片的较短长度写入,但输入长度不一致并不是普通截断场景。本文结合官方文档说明 dst 长度、输入长度、返回值和切片重叠的边界。418 收藏 -
Go ast.FilterFile 不只是按名称裁剪顶层声明,它还会无条件移除导入声明。本文用一份带导入、类型和函数的 AST 拆开过滤边界,说明返回值、字段过滤和保留原始导入的处理选择。417 收藏 -
Golang · Go问答 | 3星期前 | Go教程 · Go问答 · 文件系统 · Go afero CopyOnWriteFs CopyOnWriteFs 写入 base layer overlay 文件系统
Go afero CopyOnWriteFs 读取基础层成功但原文件不变,是因为写操作会把 base 文件复制到 layer,再只修改覆盖副本。本文从源码关系拆解读写边界,并说明预览隔离、显式同步和直接使用 OsFs 的选择。417 收藏 -
Go 1.23 后无引用 ticker 可被 GC 回收,但后台 goroutine 仍持有 ticker 或没有退出条件时,任务依旧会长期存活。本文用生命周期、Stop 和退出信号拆开排查。417 收藏