Go教程技术文章
-
Go 反射更新结构体字段时,reflect.Value.SetZero 可以把可设置值恢复为其类型零值。本文用字段更新场景说明 CanSet、指针 Elem、未导出字段和 map/slice 清空之间的边界。388 收藏 -
Go os.ReadDir 会返回按文件名排序的 fs.DirEntry 清单;本文说明 DirEntry 与 Info 的分工、部分读取错误,以及大目录使用 File.ReadDir(n) 的实现边界。388 收藏 -
Golang · Go教程 | 2星期前 | 标准库 · 性能优化 · url · Go教程 · Go net/url []byte URL.String URL.AppendBinary URL.MarshalBinary
Go net/url 的 URL.AppendBinary 可以把 URL 文本追加到已有 []byte,并把返回切片交给后续协议或日志写入。本文说明正确接住返回值、处理错误、复制长期数据,以及它和 URL.String、MarshalBinary 的选择边界。388 收藏 -
在 Go 中使用 Gonum mat 求解线性方程组时,不必先计算 A 的逆矩阵。本文从 A·X=B 的形状入手,用 Dense.Solve 处理单个和多个右端项,并给出 Condition 错误、维度排查与残差确认方法。388 收藏 -
go mod graph 会把模块需求图按一行一条边打印出来,适合查看主模块、传递依赖、版本要求和 replace 后的关系。本文说明输出格式、筛选方法,以及它和 go list -m all、go mod why 的区别。388 收藏 -
Go crypto/aes 不会替业务配置自动处理可选字段:密钥始终必填,GCM 的 nonce 按模式决定是调用方提供还是由随机封装生成,AAD 可以为空但解密必须保持一致。本文用一个小型配置入口拆清缺省字段的判断、错误和适用边界。388 收藏 -
Go 的 bufio.Reader.Peek 可以查看协议头而不推进读取位置,适合在流式输入中先判断协议类型再决定后续解析。本文用固定协议头示例说明 Peek 的缓冲区上限、短读错误、返回切片有效期,以及确认后的 Read 和 Discard 用法。387 收藏 -
Go 的 json.Indent 可以把已有 JSON 字节直接缩进追加到 bytes.Buffer,适合日志拼接、响应包装和缓冲区复用。本文按完整工作流说明参数选择、Reset、错误处理,以及它和 json.MarshalIndent 的区别。387 收藏 -
用 Go regexp.Regexp 的 ExpandString 配合命名捕获组和 SubmatchIndex,把正则匹配结果按模板顺序展开到可复用的 dst 缓冲区,并说明变量边界、未匹配组与字面量美元符号的处理。387 收藏 -
Golang · Go教程 | 3星期前 | 网络编程 · 标准库 · go · Socket · SO_REUSEADDR Go net.ListenConfig Control RawConn socket选项
Go 的 net.ListenConfig 没有直接暴露所有 socket 选项时,可以使用 Control 回调在 socket 创建后、绑定前通过 RawConn 设置平台相关参数。本文以 Linux TCP 的 SO_REUSEADDR 为例,说明错误传递、tcp4/tcp6 和跨平台边界。387 收藏 -
Go math/rand/v2.ChaCha8 使用固定的 [32]byte 种子即可复现伪随机序列。本文说明 NewChaCha8、Seed、Uint64、Read 的配合方式,并区分测试回放与 crypto/rand 的安全用途。387 收藏 -
解释 Go go:generate 的固定执行目录规则,区分包内相对路径与仓库根目录参数,并给出 -root 方案让多包代码生成不依赖调用者当前目录。387 收藏 -
围绕 Go crypto/mlkem 的 EncapsulationKey、DecapsulationKey、Encapsulate 和 Decapsulate,说明公钥封装与私钥解封装的角色边界、返回值和版本注意事项。387 收藏 -
Go io.ReadFull 会尽力读满固定长度的缓冲区。本文区分完整读取、起始 EOF 和半帧 ErrUnexpectedEOF,并给出定长消息封装写法。387 收藏 -
讲清 Go slices.Chunk 的尾组长度、空输入、非法 n、容量裁剪和底层数组别名,给出适合批量消费的判断方法。387 收藏