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 收藏 -
runtime/metrics.Read 只负责把运行时指标写入 Sample 的 Value。本文用动态发现、类型判断和采样快照说明如何稳定读取,避免把指标描述、样本槽位和 Value 类型混为一谈。418 收藏 -
解释 Go CGO_ENABLED=0 后依赖包无法编译的原因,教你用 GOOS、GOARCH、CgoFiles 和 GoFiles 判断文件选择,并在启用 cgo、纯 Go实现与自有包双实现之间做出可验证的修复。418 收藏 -
Go errors.As 匹配自定义错误时,目标变量的值类型、指针类型和地址层级必须与错误的动态类型一致。本文用包装错误示例说明为什么拿不到值,以及如何排查 nil 指针和类型错配。418 收藏 -
Go exec.Cmd.Cancel 默认会直接 Kill 子进程。本文用自定义取消信号配合 WaitDelay,说明如何给子进程清理机会、限制管道等待,并正确判断取消后的错误边界。418 收藏 -
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 收藏