Go语言技术文章
-
Go 中 crypto/rand 用于令牌、密钥和不可预测的随机值,math/rand 用于模拟、抽样、洗牌和可复现测试。本文用选择清单、代码示例和迁移边界说明两者如何分工。421 收藏 -
Go os.RemoveAll 删除只读目录失败时,先判断错误来自文件本身、父目录权限还是平台差异,再决定是否受限修复权限并重试。本文给出安全边界、错误分类和可复用的 Go 处理示例。421 收藏 -
通过 CR、LF 和 CRLF 三组输入,说明 Go mime/quotedprintable.Writer 的 Binary 模式如何保留换行字节,以及它不会改变哪些编码规则。421 收藏 -
Go test 命中缓存时会显示 (cached)。本文说明 -count=1 如何只对当前命令强制重新执行测试,并区分 -run、go clean -testcache、构建缓存和缓存决策诊断。421 收藏 -
Go写入成功不等于完成持久化。通过可复用示例分清Write、Flush、Sync与Close,说明Linux父目录同步、失败处理及多文件原子性的适用边界。421 收藏 -
Go Badger 可以通过 Entry.WithTTL 设置键值的有效时长,再用 Txn.SetEntry 写入。本文说明 TTL 的写法、Get 读取边界,以及过期不可读和磁盘垃圾回收之间的区别。420 收藏 -
Golang · Go问答 | 3星期前 | defer · 错误处理 · go · 返回值 · 排错 · 命名返回值 Go defer defer 修改返回值 error 包装 return 执行时机
Go defer 可以在函数真正返回前修改命名返回值,但不能把普通局部变量的修改追溯到已经准备好的返回结果。本文对比两种写法,并给出错误包装与可读性边界。420 收藏 -
Go filepath 会按照编译目标操作系统选择路径分隔符和绝对路径规则,因此 Join、Clean、IsAbs 等结果可能与开发机不同。本文区分本地文件系统路径和斜杠协议路径,并给出 path、ToSlash、FromSlash、Abs 与 Rel 的使用边界。420 收藏 -
解释 Go runtime/debug.SetMaxStack 的单 goroutine 栈上限、旧值返回、只限制未来增长的语义,并区分堆内存、GC 和线程数治理边界。420 收藏 -
从定义方是否知情、目标是否属于标准库内部、是否依赖未导出契约三项信号判断 Go linkname 的迁移优先级,并给出 handshake、构建、符号和行为回归方案。420 收藏 -
ssa.NewProgram 用 FileSet 和 BuilderMode 创建空的 SSA 程序容器。本文说明初始化写法、包注册与函数体构建的区别,并比较手动入口和 ssautil 辅助函数的适用条件。420 收藏 -
Go x/net/ipv4.PacketConn 将数据载荷、ControlMessage 与源地址分层返回。本文从 ReadFrom 和 WriteTo 的接口边界解释原因,并给出控制字段配置、接口选择和跨平台排查方法。420 收藏 -
区分JetStream有序读取与共享任务责任,说明durable pull consumer、显式确认、背压配置和业务幂等,并提供Go批次消费示例。420 收藏 -
围绕 Go sync.Pool 升级后命中率、对象身份和延迟变化,建立可重复的小实验,区分 API 契约、垃圾回收和业务所有权问题,并给出是否继续池化的判断清单。420 收藏 -
Go SetEscapeHTML(false) 适用于需要可读字符的独立 JSON 输出。通过完整示例区分字节表示与解析值,并说明 JSON 必要转义、末尾换行、二次编码及固定字节契约的边界。420 收藏