Go教程技术文章
-
讲清 Go GetConfigForClient 返回配置后的会话票据密钥继承、SetSessionTicketKeys 轮换和会话恢复校验边界,给出可落地的配置示例与上线清单。223 收藏 -
用自建 x509.CertPool 配置 VerifyOptions.Roots,只信任指定根证书;同时区分 Intermediates、DNSName 和 KeyUsages,避免把系统根或中间证书误当成信任边界。391 收藏 -
用Go ConstantTimeCompare比较固定长度密钥材料,说明整数返回值、长度提前返回、差异位置样本和性能观察的适用边界。403 收藏 -
Go crypto/sha3 提供了直接计算和流式计算 SHA3-256 的两种入口。本文从 Sum256、New256、固定长度摘要和十六进制表示入手,说明如何处理大输入、比较摘要以及避免把哈希误当成加密。284 收藏 -
讲清 Go encoding/xml Encoder.Indent 的 prefix 与 indent 参数,演示结构体和 token 编码的可读 XML 输出,并说明 Flush、MarshalIndent 与混合文本边界。457 收藏 -
围绕 Go crypto/mlkem 的 EncapsulationKey、DecapsulationKey、Encapsulate 和 Decapsulate,说明公钥封装与私钥解封装的角色边界、返回值和版本注意事项。387 收藏 -
Go gob 接口字段需要注册实际承载的具体类型。本文用完整消息往返示例说明两端注册、类型断言与名称冲突的排查方式。457 收藏 -
本文用 Go 标准库 crypto/hpke 的一次性 Seal/Open 接口,演示接收方公钥、封装密钥和短消息密文之间的关系,并说明 info、密文拼接格式以及解封失败时的处理边界。273 收藏 -
Go regexp.FindReaderIndex 接收 io.RuneReader,返回首个匹配在输入中的字节起止下标。本文说明如何处理 nil、UTF-8 字节范围、Reader 的超前读取,以及它与 FindIndex、MatchReader 的选择边界。105 收藏 -
讲清 Go regexp.ExpandString 如何消费 FindSubmatchIndex 的匹配区间,用命名捕获组生成替换文本,并处理模板歧义、未匹配组和追加缓冲区。200 收藏 -
Go 反射读取无符号整数时,直接调用 Value.Uint 可能因 Kind 不匹配而 panic。本文用 CanUint 作为读取前的保护,说明无效 Value、Interface 包装、可读取 Kind 和 uint64 返回值的边界。293 收藏 -
Go 的工具链版本不能直接按普通字符串比较。本文用 go/version.Compare 判断 go1.27、go1.27rc1 和 go1.27.0 的先后,并说明 go 前缀、非法输入、Lang 归一化和最低版本检查的边界。132 收藏 -
Go 反射中的 CanConvert 用来判断 Value.Convert 是否会因转换规则触发 panic。本文从 Go 1.17 的迁移场景出发,说明基础类型、命名类型、切片转数组的长度边界,以及为什么可转换不等于数值无损。435 收藏 -
Golang · Go教程 | 3天前 | 反射 · reflect · 标准库 · Go教程 · Go 反射 MapIter MapRange reflect.Value.SetIterValue map迭代
Go 反射遍历 map 时,可以用 reflect.Value.SetIterValue 把 MapIter 当前条目的值写入一个可写 Value。本文从目标 Value 的创建、MapRange 遍历到可赋值与 CanSet 边界,给出完整示例和选择建议。402 收藏 -
Go cmp.Or 适合把多个同类型候选值按优先级取第一个非零值,常用于命令行、环境变量和默认配置回退。本文说明它的用法、零值边界,以及为什么它不是字段级配置合并器。467 收藏