Go语言技术文章
-
用 Go reflect 读取结构体字段标签时,先统一处理指针与结构体类型,再结合 StructField.Tag 的 Get 或 Lookup 读取标签,并正确拆分 json 等逗号选项。186 收藏 -
用 Go hash.Hash 和固定缓冲区流式计算文件摘要,覆盖部分读取、EOF、真实 I/O 错误、资源关闭与摘要输出边界。482 收藏 -
通过 Number 约束和 []T 值参数,让 Go 泛型调用从 Sum[Cents](amounts) 简化为 Sum(amounts),并说明不能推断时应保留显式类型参数的边界。370 收藏 -
用 Go 的 hash.Hash 和 io.MultiWriter 把同一份字节分发给多个独立摘要实例,讲清 Sum 参数、结果命名、Reset 复用和摘要长度边界。223 收藏 -
Go 泛型切片算法不必一开始就抽象成复杂接口。本文从算法实际操作出发,讲清 []E 与 ~[]E 的选择、元素约束拆分、类型推断和命名切片边界。230 收藏 -
讲清 Go hash.Hash 复用时 Reset、Write、Sum 的状态边界,用一个串行摘要计算器避免上一条输入串入下一条结果。147 收藏 -
用 K comparable 和数值联合约束抽象 Go 求和逻辑,保留整数、浮点数及自定义数值类型的返回类型,并说明 ~、类型推断与边界。157 收藏 -
从不可预测性与可复现性出发,区分 Go crypto/rand 的安全随机源和 math/rand/v2 的伪随机种子,给出安全字节、测试重放与代码评审的边界清单。290 收藏 -
用 Go 1.23 的 maps.DeleteFunc 批量清空 map,理解保留容器、别名可见性、nil map、容量与并发访问之间的边界。345 收藏 -
讲清 Go crypto/rand.Int 的 [0,max) 参数边界,给出闭区间换算、big.Int 写法、随机源选择和错误处理清单。382 收藏 -
围绕 Go maps 包比较嵌套值的相等性,说明 maps.Equal 与 maps.EqualFunc 的选择边界,并处理切片、嵌套 map、nil 与空集合语义。472 收藏 -
Golang · Go问答 | 1星期前 | 随机数 · 错误处理 · Go问答 · 安全编程 · Go crypto/rand rand.Read错误处理 Go随机字节读取 io.ReadFull短读 Go安全令牌生成
围绕 Go crypto/rand.Read 的 n、err 和长度边界,说明如何封装随机读取、测试短读错误,并在成功前阻止半成品随机数据进入业务。158 收藏 -
用 Go maps.Clone 复制 map,隔离顶层写入,并通过值类型判断 slice、指针等嵌套数据是否还需要额外复制。163 收藏 -
用 Go os.CreateTemp 创建临时文件时,创建、写入、关闭和删除是四个不同责任。本文给出一套保留原始错误、无论成功失败都清理文件的实践写法。103 收藏 -
Go slices.Clip 会把切片容量收紧到长度,降低接收方 append 改写原底层数组的风险;本文用标签快照示例说明 Clip、Clone 与真正数据隔离的边界。324 收藏