Go语言技术文章
-
解释Gonum Poisson的Lambda为何是固定窗口平均次数,通过速率换算和理论概率对比区分成功概率,并说明二项分布、样本估计与零均值边界。341 收藏 -
说明 Go ast.PreorderStack 如何把祖先节点栈传给回调,解释 stack 不含当前节点、返回 false 跳过子树和初始栈参数的边界,并对比 Preorder 与 Inspect。341 收藏 -
Go archive/zip.Writer.Copy 能把已有 ZIP 条目的 raw form 直接搬到新归档,避免未修改内容重复解压和压缩。本文给出重打包示例,并划清 Copy、CreateHeader、CreateRaw 与 Writer.Close 的使用边界。341 收藏 -
runtime.KeepAlive 本身没有错误返回值。本文从受保护的资源操作入手,说明如何保留 n 和 err,再用 errors.Is、errors.As 区分中断、句柄失效与其他底层原因,并把 KeepAlive 放在正确的生命周期边界。341 收藏 -
Go regexp.FindAllStringIndex 返回非重叠区间是设计行为,不是漏查。本文用 aba/ababa 说明左到右的匹配推进、n 参数的真实作用和 UTF-8 字节下标,并给出按 rune 起点推进的外部游标方案来收集重叠结果。341 收藏 -
Go embed.FS 可以把模板目录编译进程序,再以 fs.FS 的方式交给 ReadFile、ReadDir 和 template.ParseFS。本文从目录布局开始,给出一个可复用的最小示例,并说明路径、匹配规则、错误处理和只读边界。341 收藏 -
Go tcell 处理键盘事件时,用 Key() 区分 KeyRune 与命名功能键,再用 Str() 读取普通字符;本文补充 Ctrl、Shift-Tab 和终端协议的兼容边界。340 收藏 -
介绍Goja注册Go回调函数的两种写法,使用完整示例说明参数转换、原生FunctionCall、脚本异常接收和运行时并发限制。340 收藏 -
Go 使用 atomic.Uint64 累计独立事件时,需要统一 Add 与 Load 访问并共享对象指针。本文用完整示例说明快照、任务结束、禁止复制及64位对齐,并划清溢出、热点竞争和多字段一致性的边界。340 收藏 -
Go 的 time.Time 既能表示墙上时钟,也可能携带进程内单调时钟。本文用一组最小写法说明 Before、After、Equal、Compare、Sub 的分工,以及序列化、时区转换、== 比较和机器休眠时的边界。340 收藏 -
Go flag.BoolFunc 每次遇到开关都会回调。通过 ParseBool 与局部累计对象保留重复布尔值,区分出现次数、真值次数和最后状态,并说明显式 false、解析错误与状态重用的边界。340 收藏 -
Go unique.Handle 适合把可比较值规范化后用于快速比较。本文从字符串键的空输入和解析错误出发,说明 unique.Make、Handle 比较、Value 取回与生命周期边界,避免把错误值混进句柄逻辑。340 收藏 -
Go types.Interface.IsComparable 只说明接口类型集合中的每个类型是否可比较,不能说明两个类型集合是否相等。本文用 int、string、~int 和 ~string 的约束对比这一信息损失,并给出 Complete、Underlying 与 types.Identical 的正确分析路径。340 收藏 -
time.Duration 本质是纳秒整数,String 会按可读性自动选择小时、分钟、秒、毫秒、微秒或纳秒,并保留负值符号。本文用典型场景解释这些输出为什么不同,以及接口需要固定格式时怎么处理。339 收藏 -
Go 模糊测试发现失败输入后,不要把 crash artifact 当作临时文件删除。本文以 FuzzParse 为例,说明如何定位 testdata/fuzz 语料、用 -run 精确复现,并让修复后的失败输入长期成为默认回归测试。339 收藏