Go语言技术文章
-
Go runtime.KeepAlive 的关键不是延长所有对象的生命周期,而是在系统调用返回前保持带有 finalizer 的外部资源对象可达。本文用文件描述符和底层调用示例说明放置位置、适用边界与排查清单。427 收藏 -
Go regexp 允许多个捕获分组使用同一个名称,真正的编译错误通常来自命名语法、括号闭合、转义或不支持的 Perl 扩展。本文用最小模式、syntax.Error 和 SubexpIndex 拆开排查路径,并给出生产代码中的命名策略。426 收藏 -
用 GopherLua 的 LTable.ForEach 遍历 Lua 表,结合 LValue 类型判断、必填字段检查和嵌套表转换,把脚本配置安全地映射为 Go 业务对象。426 收藏 -
以共享前缀声明为例,比较 Participle 有限前瞻与语法重写在 AST 兼容、字段归属和错误诊断上的取舍,区分真正歧义及左递归问题。426 收藏 -
Go 的 x509 Verify 即使已加载根证书,也可能因 PEM 未解析、使用了不同 Roots、缺失中间证书或 CA 约束不成立而返回 unknown authority。本文用加载布尔值、签名关系和返回链数量逐层定位并修复。425 收藏 -
encoding/csv 遇到非标准引号时可以用 LazyQuotes 放宽读取,但应同时固定字段数、记录解析错误并保留抽样检查,避免把脏数据直接变成静默错列。425 收藏 -
数据库 · Redis | 3天前 | Redis · Sorted Set · redis sum Max aggregate min WEIGHTS ZINTERSTORE Sorted Set交集
Redis ZINTERSTORE 先用 WEIGHTS 对各个 Sorted Set 的 score 做乘法,再用 AGGREGATE 选择 SUM、MIN 或 MAX 合并交集成员。本文用两个榜单的具体分数拆开参数顺序、结果变化和空交集边界。425 收藏 -
Lit 的 updateComplete 适合等待当前组件完成一次响应式更新,但默认不等待子组件。本文从事件派发、DOM 测量和测试三个场景说明使用方式,并比较 getUpdateComplete、requestAnimationFrame 与 ResizeObserver 的边界。425 收藏 -
Redis 分布式锁请求超时不等于加锁失败。本文区分请求、业务与租约期限,解释身份比较释放、续租失败、SDK 重试和 fencing 的职责,帮助处理未知结果并防止旧持有者迟到写入。425 收藏 -
Golang · Go教程 | 4天前 | HTTP · 重定向 · Cookie · Go教程 · net/http · Cookie会话 Go CookieJar net/http/cookiejar Go重定向 http.Client.Jar
Go 的重定向请求想继续使用会话 Cookie,关键不是手工复制 Cookie,而是让同一个 http.Client 挂载 cookiejar.Jar。本文从两跳小项目出发,说明 Set-Cookie 如何进入 Jar、后续请求如何匹配,并梳理 Domain、Path、Secure、CheckRedirect 和客户端复用边界。424 收藏 -
Go slice 截取不会复制底层数组,只保留很小的子切片时,大数组仍可能被引用。本文用字节片段示例说明原因,并给出 make+copy 与 bytes.Clone 的释放方案。424 收藏 -
Go 读取已关闭 channel 时会得到元素类型零值,但双返回值中的 ok 会变成 false。本文区分开放空通道、已关闭通道和缓冲值,说明单次接收、range 消费与关闭责任的正确约定。424 收藏 -
Go 基准测试里的 ReportAllocs 不是全局开关。本文用 ResetTimer、b.N 和 b.Loop 拆开准备阶段与被测循环,说明怎样确认 allocs/op 和 B/op 只统计正确代码。423 收藏 -
Go sync.Once 延迟初始化需要共享同一实例,并保存资源对象与初始化错误。本文用只读名称表示例说明并发发布、失败不重试及资源更新和关闭的边界。423 收藏 -
Go 项目把 interface API 迁移到泛型时,不能只看代码是否编译。本文用共享测试表、最小泛型约束和并行适配层,比较旧接口与泛型实现的输出、错误、零值和边界行为,帮助你分阶段完成迁移并保持测试等价。423 收藏