Go教程技术文章
-
Go 1.27 的实验性 SIMD API 分成可移植的 simd 与架构相关的 simd/archsimd。本文结合 Float32s、Float32x4、ToArch 和 FromArch,说明两层 API 的能力边界、构建开关、转换方式和公共接口风险。132 收藏 -
Go 的工具链版本不能直接按普通字符串比较。本文用 go/version.Compare 判断 go1.27、go1.27rc1 和 go1.27.0 的先后,并说明 go 前缀、非法输入、Lang 归一化和最低版本检查的边界。132 收藏 -
Go os.File.WriteString 适合把字符串直接写入文件,但仍要检查返回的字节数和错误。本文从打开模式、资源关闭、短写判断和 io.WriteString 的通用写法说明如何安全处理文本写入。132 收藏 -
Golang · Go教程 | 1天前 | 依赖管理 · Go教程 · 工程实践 · Go vendor 离线构建 Go Modules go mod vendor modules.txt 依赖一致性
本文围绕 go mod vendor 说明如何把 go.mod、go.sum、vendor/modules.txt 与 vendor 目录组成可提交的依赖快照,再用 -mod=vendor、GOPROXY=off 和 GOSUMDB=off 让构建与测试在无网络环境中读取同一套依赖,并整理清单漂移时的修复边界。132 收藏 -
Go 的 filepath.Clean 可以按当前操作系统规则清理重复分隔符,但它同时会处理 .、..、空路径和分隔符风格。本文用边界示例说明清理结果、适用位置和性能测量口径。131 收藏 -
Go os.DirFS把目录映射为fs.FS,适合把资源读取代码与宿主路径解耦。本文从一次实际封装体验出发,给出有界读取示例,并比较DirFS与Root.FS的适用边界。131 收藏 -
在 Go HTTP 上传中,io.CopyN 只能限制本次读取量,不能单独判断请求是否超限。本文用上限加一字节的读取策略,结合 written 和 err 区分短文件、刚好达标、超限与 I/O 错误,并用临时文件避免半成品落盘。131 收藏 -
Go bufio.Reader.Peek 可以预览接下来的字节而不移动读取位置。本文用协议前缀场景说明 Peek、Read、Buffered 和 Discard 的区别,并处理短读、ErrBufferFull 以及返回切片的有效期边界。131 收藏 -
Go 1.24+ 可以通过 http.Server.HTTP2 和 HTTP2Config.MaxConcurrentStreams 设置服务端 HTTP/2 并发流上限。本文区分每连接限制、全局请求并发和 Transport 的跨连接行为,给出配置与排查清单。130 收藏 -
go env -w 会把 Go 环境变量的默认值写入每用户配置文件,适合持久化 GOPROXY、GOFLAGS 等工具链设置。本文比较它与 export、命令行参数和项目配置的边界,并给出读取、撤销和协作场景的选择方法。130 收藏 -
Go buildutil.ExpandPatterns 根据构建上下文展开包路径模式。本文给出集合转有序清单的写法,说明包含与排除的顺序、工作区范围,以及它与模块加载和构建验证的区别。130 收藏 -
先处理 WalkDir 回调错误再访问目录条目,用完整只读统计工具区分根失败、子目录权限遗漏和主动排除,并解释 SkipDir、部分结果与退出状态。130 收藏 -
Go encoding/json/v2 的 Options 不是一份只能全局修改的开关表,而是可以随调用组合的配置值。本文用编码、解码和 v1 兼容三个场景说明选项作用面、覆盖顺序与迁移边界。129 收藏 -
解释 OffsetWriter 的起点映射、Write 与 WriteAt 游标差异、Seek 支持范围,给出局部写入示例,并明确它不提供写入长度上限及底层关闭责任。129 收藏 -
Go 的 debug/pe 将 PE 文件的 OptionalHeader 暴露为 32 位或 64 位具体结构。本文用一个紧凑的类型 switch 读取 AddressOfEntryPoint 与 ImageBase,解释入口点 RVA、虚拟地址和文件偏移的区别,并补上解析失败与不可信输入的处理边界。128 收藏