Go语言技术文章
-
从配置校验场景出发,拆开 nil 接口、typed nil 和 reflect.Value.IsZero 的差异,并用可运行的 Go 示例给出安全的判断边界。382 收藏 -
Golang · Go问答 | 2天前 | 反射 · 数据结构 · 标准库 · golang · Go reflect.StructOf 动态结构体 reflect.StructField StructTag
reflect.StructOf 可以根据 reflect.StructField 列表拼出运行时结构体类型,适合字段集合由配置决定的场景。本文用一个可运行示例说明字段标签如何读取、为什么未导出字段会触发限制,以及如何缓存字段描述而不是反复创建类型。277 收藏 -
Golang · Go教程 | 2天前 | 错误处理 · go · 模板 · 后端开发 · 渲染 · Go Template html/template text/template 模板运行 missingkey
Go 模板渲染可选片段时,字段缺失不一定会立刻报错。本文用 text/template 的模板运行、Option("missingkey=error") 和显式分支拆开默认行为、严格校验与可选字段的边界,给出可直接运行的处理方式。177 收藏 -
Golang · Go问答 | 2天前 | 并发 · 标准库 · go · 泛型 · unique · Go unique.Make unique.Handle Handle.Value 值身份 可比类型
Go unique.Make 为可比较值建立可比较的 Handle 身份。本文用一个小型标签池示例说明 Handle 相等、Value 浅拷贝、不可比较类型限制和进程结束后的生命周期边界。203 收藏 -
Go 的 iter.Pull 把 push 风格的 iter.Seq 转成 next 和 stop 两个函数,适合需要逐个取值的场景。本文用可运行示例说明 next 的结束信号、提前停止时 defer stop 的必要性,以及不能并发调用 next 和 stop 的边界。462 收藏 -
当正则模式的一部分来自用户输入或配置时,regexp.QuoteMeta 能把文本中的正则元字符当作普通字符处理。本文比较直接拼接与 QuoteMeta 的匹配结果,并说明它不适合替代完整正则语法的边界。331 收藏 -
用 Go 标准库 netip.Prefix.AppendTo 把 IPv4 与 IPv6 网段写入既有字节缓冲区,验证前缀长度、零值和容量边界,避免不必要的字符串分配。479 收藏 -
用 Go 标准库 crypto/ecdh 完成一次可验收的密钥交换,说明公钥 Bytes 序列化、NewPublicKey 恢复、曲线匹配和共享密钥一致性检查。413 收藏 -
Go 1.22 起 ServeMux 支持方法和通配符,重叠路由按更具体的模式优先;只有双方都不更具体时才冲突并在注册时触发 panic。本文用真实模式拆解方法、路径、主机和注册顺序的边界。342 收藏 -
io.NewOffsetWriter 可以把顺序写入映射到一个带起始偏移的区域,但它不会替底层 WriterAt 修复短写,也不会把 Seek 的定位语义变成并发安全。本文用可复现的内存示例拆开偏移、短写和错误传播边界。369 收藏 -
从一个可重复触发的 Go 定时任务出发,拆解 time.Ticker 的停止顺序、退出信号、重复 Stop 边界和可验收的收尾写法。364 收藏 -
Go 的 maps.Keys 可以把 map 的键序列交给调用方继续处理,但它不承诺键的顺序。本文用空 map、无序输出和 slices.Sort 三个边界说明如何安全地收集、排序并验收结果。132 收藏 -
从一个批量拼接日志的场景出发,验证 bytes.Buffer.Grow 预留容量何时有用、WriteString 如何触发扩容,以及 Reset 为什么只清空长度而不承诺释放底层空间。352 收藏 -
围绕分块文件生成场景,验证 Go os.File.WriteAt 的独立偏移语义、并发写入边界、短写处理和最终文件验收方法。326 收藏 -
解释 Go iter.Pull2 如何把 iter.Seq2 转成逐项拉取的 next 与 stop,重点验证提前停止时为什么必须调用 stop,以及双值序列结束后的边界行为。123 收藏