Go教程技术文章
-
介绍 Go 业务时区的加载、无偏移时间解析、UTC 存储与地区显示,给出完整示例,并说明时区数据依赖、固定偏移和旧字段迁移的注意事项。239 收藏 -
围绕 Go 1.27 泛型方法说明接收者参数、方法参数和类型约束的关系,结合 List[T].Map[R] 讲清类型推断、显式实例化、方法表达式与接口边界。238 收藏 -
testing/quick 默认通过反射生成输入,遇到含不可导出字段的结构体就无法自动构造。本文用自定义 Generator 和 Config.Values 两条路径处理本地类型与 time.Time 等外部类型,并说明随机边界与可复现配置。238 收藏 -
Go Timer 配合 Stop 要区分新旧通道语义。本文说明陈旧事件、排空前提与单一消费者写法,给出完整示例和迁移清单,避免把 false 误当成通道有值。237 收藏 -
Go 1.23 起,maps.Collect 可以把 iter.Seq2[K,V] 键值序列收集为新的 map。本文从 slices.All 的最小写法讲到自定义 Seq2、重复键覆盖规则,以及 maps.Collect 与 maps.Insert 的选择边界。236 收藏 -
slices.SortedFunc 会收集迭代器并按自定义比较函数排序,但不保证同键元素的原始顺序。本文通过订单案例解释 SortedStableFunc、显式次级键、map 输入顺序与严格弱序比较器的选择。236 收藏 -
讲清 Go context.WithoutCancel 的值查询、取消与截止时间语义,并用 HTTP 请求后的有界后台任务示例说明如何搭配 WithTimeout、避免 nil Done 阻塞和正确释放资源。235 收藏 -
讲清 Go slices.Chunk 的固定大小切分、底层数组别名、cap 裁剪、append 行为,以及何时应该用 slices.Clone 保存独立批次。234 收藏 -
用 Go image/draw 按目标尺寸计算居中裁剪框,再将源图区域复制到缩略图画布,并排查边界、偏移与合成模式问题。234 收藏 -
讲清 Go bufio.Reader.ReadSlice 遇到超长行时的 ErrBufferFull 语义、切片生命周期与分片处理方法,并加入单行上限、换行符和 EOF 策略。233 收藏 -
从父 Context 的 Deadline 读取剩余时间,先预留收尾余量,再用比例与最大值计算子任务超时。本文给出可复用的预算函数,并说明无截止时间、预算耗尽和并发子任务的处理边界。232 收藏 -
Go fuzzing 不可重复,通常不是随机输入本身的问题,而是 fuzz target 读了真实时间、共享状态或不可控外部依赖。本文用依赖接口、Fake 实现、固定种子和失败语料目录,整理出可重复运行的 Go 模糊测试结构。232 收藏 -
Go 反射通过 FieldByName 读取同名嵌入字段时,多个路径无法唯一消歧会返回无效 Value。本文演示如何检查 IsValid、改用 FieldByIndex,并处理 nil 嵌入指针。232 收藏 -
Go 的 image.Decode 会根据已注册的解码器识别 PNG 或 JPEG。本文给出空白导入、格式返回、尺寸预检和文件位置复位的最小写法。231 收藏 -
测试依赖用户主目录的 Go 代码时,先按平台选择 HOME 或 USERPROFILE,再用 t.TempDir 与 t.Setenv 注入临时路径,并覆盖空值错误分支。本文给出可复用的断言结构和 Cleanup 边界。231 收藏