Go语言技术文章
-
用 Go html/template 完成用户输入自动转义,覆盖 HTML 文本、href 属性、脚本上下文、安全类型与不安全 URL 的边界。261 收藏 -
用 Go runtime/debug.ReadGCStats 采样 GC 暂停历史时,Pause 可能复用底层切片。本文说明如何复制采样快照、读取最近优先的暂停记录,并用 PauseQuantiles 输出固定分位数摘要。261 收藏 -
围绕 Go unique.Make 与 Handle[T] 说明可比较值的规范化、相等判断、Value 取值和生命周期边界,给出带中文注释的最小实现与采用清单。261 收藏 -
Go sync.OnceValue 会缓存成功结果,也会记住初始化函数的 panic。本文用调用结构、状态边界和决策表说明怎样设计可预测的一次性初始化。260 收藏 -
Go 1.27 的 constant.StringLen 可直接计算字符串常量的字节长度,不必先提取完整内容。通过原创示例区分未知值与空串,说明字面量、拼接表达式、类型检查和报告缓存的适用边界。260 收藏 -
Go math.Nextafter32 返回 float32 朝目标方向的下一个可表示值。本文用最小示例说明方向语义,并梳理相等输入、零值、NaN 与极值附近的边界,帮助区分邻接值操作和误差容忍判断。260 收藏 -
Go 的 Mutex 首次使用后不能复制。值接收者、结构体赋值和返回值都可能产生锁副本;如果副本仍指向同一底层数据,就会出现多个锁保护同一对象的并发风险。260 收藏 -
Go 的 os.File 是文件句柄,不是可直接填写字段的配置结构。本文用独立配置表达可选权限、偏移、截断和同步策略,并说明打开、写入、失败处理与关闭的职责边界。260 收藏 -
Go encoding/json 解码部分更新请求时,普通字段容易把缺失和显式 null 压成同一个零值。本文用 Optional[T] 保留 Present、Null、Value 三种状态,再用 map[string]json.RawMessage 处理动态字段,并说明对象复用与 omitempty 的边界。260 收藏 -
Go types.TypeParam.Underlying 返回接口而不是 int 等具体类型,是因为类型参数的底层类型取自约束,而约束的底层类型总是接口。本文区分 TypeParam、Constraint、Underlying、类型集合与 TypeArgs,说明静态分析时怎样读取真正需要的信息。260 收藏 -
Golang · Go教程 | 1天前 | 标准库 · time · 时区 · Go教程 · Go 本地时间 time.LoadLocation time.Parse time.ParseInLocation 时区解析
Go 的 time.Parse 对无时区字符串默认按 UTC 解释,而 time.ParseInLocation 可以把指定 Location 用作本地时间的解释位置。本文用最小示例比较两者差异,并说明 LoadLocation、输入协议和错误处理的边界。260 收藏 -
Go 的 io/fs.FileMode 同时携带文件类型位和权限位。本文从 FileInfo、DirEntry、IsDir、IsRegular、Type、Perm 几个入口说明如何区分目录、普通文件与符号链接等特殊类型,并补上遍历时的错误处理边界。259 收藏 -
Go 用 collate.New(language.German) 创建德语文本排序器。通过完整示例说明语言标签、稳定排序与原切片保护,并解释比较等价、并发独占和配置记录的使用边界。259 收藏 -
Go x/net/idna.ToASCII 不是简单的字符串转小写,而是原始 Punycode 编码入口。本文区分 ToASCII、Lookup.ToASCII 与 Registration.ToASCII 的用途,说明域名查找映射和注册校验应该怎样选择。259 收藏 -
Go iter.Pull2 的第三个返回值 valid 才表示当前 pair 是否有效,错误可以作为第二个值正常传递。本文用一个带错误值的 Seq2 示例说明自然结束、错误值和 stop 清理之间的区别。259 收藏