Go语言技术文章
-
RAG 应用里,回答看似有引用却指错段落,往往不是模型单独出错,而是切块编号、索引元数据和原文版本没有保持同一条链路。本文用文档快照、chunk_id 和回答后验校验,搭一套可定位、可回归的引用验收方法。148 收藏 -
用 Go os.DirFS 暴露静态资源或模板目录时,关键不是把绝对路径换成相对路径,而是确认 io/fs 的 ValidPath 约束、根目录语义和测试边界。本文用一个最小文件服务示例拆开这些判断。148 收藏 -
reflect.Value.Comparable 用来先判断值是否具备 Go == 比较条件。本文从接口值和 slice、map 等不可比较类型出发,说明安全比较的写法、panic 边界与迁移检查点。148 收藏 -
解释 Go bytes.Buffer 的 UnreadByte 何时成功、何时返回错误,并用读取游标、最后一次读取和 Reset 场景给出可复现的核对方法。148 收藏 -
go/ast.Preorder 返回一个按深度优先顺序遍历语法树的迭代器。本文从源码扫描器的高压场景出发,拆解节点顺序、break 提前停止和解析错误的边界,并给出可复查的实现方式。148 收藏 -
用 Go 的 testing.B 对比 json.Marshal 与复用 bytes.Buffer 的 json.Encoder,说明如何固定输入、报告分配次数、避免把准备工作计入循环,并正确解释速度、内存和输出换行差异。148 收藏 -
用户输入的正则模式不能交给 MustCompile。本文用 regexp.Compile、errors.As 和 syntax.Error 做输入边界、内部诊断与对外提示的分层处理。148 收藏 -
农业种子经销商进货验收,不能只看包装是否完整。本文按标签字段、供货凭证、批次台账和异常隔离四个环节,整理一套可追溯的核对方法。148 收藏 -
Golang · Go问答 | 2个月前 | goroutine · Context · 超时控制 · Go问答 · 协程泄漏 · Go Goroutine 超时控制 context.WithTimeout 取消信号 协程泄漏 ctx.Done
context.WithTimeout 只会在到期后关闭 Done 通道并返回取消原因,不会直接停掉 goroutine。Go 代码要把 ctx 传进阻塞调用,并在 select、循环和清理逻辑里主动响应取消信号。147 收藏 -
Golang · Go问答 | 1个月前 | 工具链 · go语言 · Go教程 · 版本升级 · 代码重构 · Go 1.26 go fix modernizer 代码升级 new 表达式 Go 代码迁移
Go 1.26 重写了 go fix,把它从旧式修复命令变成基于 go/analysis 的 modernizer 工具。本文用一个含有可选字段和自定义 newInt 函数的 Go 模块,演示如何预览建议、限定改动范围、检查 go.mod 版本并完成回归。147 收藏 -
文章 · java教程 | 4星期前 | 密码学 · Java教程 · Java 25 · HKDF · 密钥派生 · Java 25 KDF Key Derivation Function API HKDF JEP 510 密钥派生
Java 25 新增 Key Derivation Function API,可用 HKDF 从已有密钥材料派生用途隔离的子密钥。本文用可运行示例说明 Extract、Expand、salt、info 和测试验收边界,避免把 KDF 当成加密或哈希替代品。147 收藏 -
Python 3.13 新增的 copy.replace() 适合给 dataclass、namedtuple 和自定义 __replace__ 对象生成字段变体。本文用订单配置场景说明它与 copy.copy、deepcopy、dataclasses.replace 的边界,并给出兼容检查和测试方法。147 收藏 -
用 stat 对照 Linux 文件的 inode、mtime、ctime 和 sha256sum,判断配置是否真的被替换,以及服务是否重新读取了新文件。147 收藏 -
用 log/slog 给请求日志补 request_id 时,WithAttrs 适合固定上下文,Handler 包装适合动态注入。本文用一段可运行示例说明两者的边界、并发安全和验收方法。147 收藏 -
手机或应急终端发出地震预警时,先把它当作争取几秒到几十秒的避险提示:室内就近躲避并护住头颈,晃动停止后再有序撤离;速报则是震后确认时间、地点、震级等信息。147 收藏