Go教程技术文章
-
使用 encoding/base64.NewDecoder 把 Base64 文件接入 io.Copy,边读取边解码并写入目标文件,本文同时说明文件句柄、尾部截断、非法字符和不同编码表的处理边界。343 收藏 -
time.After 放进长循环后,真正需要区分的是 Go 版本的回收语义、是否要提前取消,以及是否能复用计时器。本文用可运行示例拆开三种情况,给出 Stop、Reset 和上下文取消的安全边界。342 收藏 -
encoding/csv.Reader 的 ReuseRecord 可以复用上一轮记录切片的底层数组,减少大批量读取时的切片分配。本文给出逐行转换、分批写入与跨轮次复制的安全写法。342 收藏 -
Go io.MultiWriter 按顺序写入多个目标,遇到错误会立即停止。本文用失败 Writer 说明 n、err、短写和未执行目标的边界,并给出多目标尽力写入时的补偿方案。342 收藏 -
Go 使用 slices.Compact 原地合并相邻重复元素时,应接住返回切片并停止使用旧长度视图。本文说明相邻去重、共享底层数组与容量的区别,梳理 Go 1.22 尾部清零变化及保留输入的写法。342 收藏 -
Go 1.27 新增 crypto/mldsa,可用 MLDSA44、MLDSA65 或 MLDSA87 生成 ML-DSA 私钥。本文给出密钥生成、公钥导出、seed 恢复以及带 context 的签名验证写法,并说明参数尺寸和 FIPS 140-3 边界。342 收藏 -
Go text/template 的 break 只能结束最内层 range。本文用一个紧凑示例说明如何在命中条件后停止模板输出,并区分 break、continue、else 与嵌套 range 的控制边界。342 收藏 -
Go jsontext.Decoder 可以把 JSON 当作 token 流读取,不必先反序列化成 Go 对象。本文从语法层和对象层的区别讲起,演示 ReadToken、PeekKind、ReadValue、输入偏移量和嵌套边界的使用,说明流式筛选时如何控制读取粒度与错误处理。342 收藏 -
Go compress/zlib.Reset 可以在保持压缩级别和字典配置的前提下切换输出写入器,适合批量处理多个独立数据块。本文说明 Close、Flush、Reset 的边界,以及 bytes.Buffer 结果复制与所有权管理方法。342 收藏 -
用 Go log/slog 的 WithGroup 组织嵌套字段,解释 Handler 链路、同名键边界与 JSON 输出检查方法。341 收藏 -
Go embed.FS 保留完整目录树,fs.Sub 可以把 web 子目录暴露为新的文件系统根目录。本文用最小代码说明路径变化、fs.ReadFile 检查方法以及接入 http.FileServer 时的常见错误。341 收藏 -
Golang · Go教程 | 1个月前 | TLS · Go教程 · Go x509 VerifyOptions ExtKeyUsageServerAuth ExtKeyUsageClientAuth mTLS证书用途
讲解 Go crypto/x509 VerifyOptions.KeyUsages 的服务器与客户端证书用途差异,给出显式验证函数、常见错误、TLS 配置映射和回归测试清单,避免空 KeyUsages 默认值与 ExtKeyUsageAny 带来的误判。341 收藏 -
Go 1.22+ 的 net/http.ServeMux 可以把 HTTP 方法、路径通配符和参数提取直接写进路由模式。本文用一个小型文章接口说明 GET/HEAD、PathValue、剩余路径、优先级与尾斜杠边界。341 收藏 -
Go maphash.Hash 的零值会自行选择随机种子,测试或并发计算需要显式共享 Seed,再为每个计算者创建独立 Hash。本文说明 MakeSeed、SetSeed、Reset 的关系,以及 maphash 不适合密码摘要和持久化协议值的边界。341 收藏 -
Go 生成登录链接、一次性令牌或接口随机值时,应让 crypto/rand.Reader 填充固定长度的字节缓冲,再按传输场景编码。本文解释字节长度、Read 错误、RawURLEncoding 和边界处理。341 收藏