Go问答技术文章
-
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 收藏 -
Go select 在多个通信操作同时就绪时不会按 case 顺序提供业务优先级,而是选择一个可执行通信。本文用高价值、普通和后台三类通道说明非阻塞探测、处理预算、关闭边界与防饥饿设计。417 收藏 -
解释 Go generate 环境变量替换与参数边界的关系,说明带空格值、多个独立参数、字面美元符号和空变量的可靠写法。417 收藏 -
通过固定工作量对比 GOMAXPROCS,说明 CPU 配额、阻塞任务和运行时默认策略如何影响 Go 并发吞吐,并给出上线复核清单。417 收藏 -
Go ast.FilterFile 不只是按名称裁剪顶层声明,它还会无条件移除导入声明。本文用一份带导入、类型和函数的 AST 拆开过滤边界,说明返回值、字段过滤和保留原始导入的处理选择。417 收藏 -
Golang · Go问答 | 2星期前 | 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 收藏 -
Golang · Go问答 | 2星期前 | 日志 · 标准库 · go · 故障排查 · Go 结构化日志 ReplaceAttr log/slog WithGroup WithAttrs slog.Handler
Go log/slog 中字段消失,通常不是 Logger.With 没有传进去,而是 ReplaceAttr 返回了零值 Attr,或自定义 Handler 在 WithAttrs、WithGroup 中丢掉了状态。本文按调用链定位原因,并给出只过滤明确键名的修复写法。417 收藏 -
gzip.Reader 的完整性校验依赖读取到 EOF,不能用 Close 成功替代。本文区分读取与关闭错误,提供限制解压大小的完整示例,并说明提前停止、多成员和底层资源的处理边界。417 收藏 -
Go JSON null 会清空普通指针字段,但字段缺失与整数零有不同含义。通过独立快照、RawMessage 和存在标志处理配置更新,避免 nil 解引用与旧值残留。417 收藏 -
filepath.Glob遇到非法模式会返回ErrBadPattern,忽略err才容易误认为普通空结果。本文给出最小错误处理写法,区分无匹配与目录读取问题,并说明相对路径、星号和跨平台转义的边界。417 收藏 -
slices.SortStableFunc 并不会替你修正比较函数。本文从负、零、正返回值、相等元素保序和严格弱序三个边界,说明怎样写出可检查的稳定排序比较器。416 收藏