Go教程技术文章
-
Go Lumberjack 用 MaxBackups 限制历史日志份数、用 MaxAge 按轮转时间限制保留天数;本文给出组合配置、清理时机和容量估算边界。390 收藏 -
Go os.ReadDir 返回的 DirEntry.Type 只是文件类型位的子集,不能当成完整 FileMode。本文用一个目录扫描器说明快速分类与 Info 补读的边界,以及如何处理元数据读取错误。390 收藏 -
解释 iter.Pull 的 next、stop 与提前退出责任,对比直接 range 和手动拉取,提供带清理标记的示例,并说明 defer 作用域、自然耗尽及重复停止的边界。390 收藏 -
Go 的 time.LoadLocationFromTZData 可以直接从标准 IANA TZif 字节创建 Location,适合把时区数据随程序一起打包。本文说明数据来源、参数语义、错误处理以及与 ParseInLocation 的组合方式。390 收藏 -
Go 1.27 的 encoding/json/v2 默认拒绝 JSON 重复键。本文用批处理示例说明严格模式、遗留兼容开关、结构体复用和分配测量的边界。390 收藏 -
用一个可迁移的 Go 泛型 API 例子,解释约束中的 ~T 如何放宽命名类型匹配范围,以及它对调用方兼容性、返回值设计和后续演进的影响。389 收藏 -
讲解 Go multipart 上传文件名的安全处理:原名只作展示,限制请求体,按内容识别类型,生成随机存储名,并用 O_EXCL 防止覆盖已有文件。389 收藏 -
Go SHA-512 的 Sum 会在已有切片末尾追加二进制摘要。通过报文前缀示例区分 Write 输入与结果前缀,说明返回值、长度容量、摘要区间和十六进制文本的不同。389 收藏 -
介绍 Go Colly 使用 colly.Context 在 OnRequest、OnHTML、OnResponse 和 OnError 之间传递请求级业务信息,说明 Request.Visit 的继承、Clone 的隔离边界,以及与标准库 context.Context 的职责区别。389 收藏 -
Go strconv.AppendBool 会把 true 或 false 直接追加到已有 []byte,并返回可能扩容后的切片。本文用配置行构建器说明返回值、缓冲区复用、结果所有权,以及它与 FormatBool 的选择边界。389 收藏 -
用 Go 标准库 fs.FileInfoToDirEntry 把已有 FileInfo 适配为 DirEntry,说明 Name、IsDir、Type、Info 的映射关系,以及 nil 输入、类型断言和 Info 错误的处理边界。389 收藏 -
Go reflect.Value.SetIterKey 用于把 MapRange 当前条目的键写入可设置的 Value。本文说明 MapIter.Next、键类型可赋值、CanSet 与迭代器状态边界,并对比 Set(iter.Key()) 的使用方式。389 收藏 -
用 go-colorful 的 BlendHcl 在 HCL 空间混合两个颜色,解释色相插值、IsValid 色域判断和 Clamped 边界处理,适合生成更自然的颜色渐变。389 收藏 -
接收用户提供的文件路径时,先用 filepath.IsLocal 做词法边界判断,可以拒绝绝对路径、空路径、父目录逃逸意图以及 Windows 保留名,再安全地拼接工作目录。本文用一个可复用的 Go 示例说明校验、Join 和真实文件操作之间的边界,并提醒 IsLocal 不会解析符号链接。389 收藏 -
用 Go 1.22 及以上版本的 net/http ServeMux 读取路径通配符,讲清 PathValue、通配符边界、路径转义和旧版本兼容处理。388 收藏