Go教程技术文章
-
Go netip.Prefix.IsValid 同时判断地址是否已初始化、前缀位数是否符合 IPv4 或 IPv6 范围。本文用一个小工具区分零 Prefix、0.0.0.0/0、非法位数和有效但未掩码的前缀。371 收藏 -
用 Go go-shp 把点坐标写成 Shapefile 文件组,说明 POINT Writer、DBF 字段、几何记录与属性行的对应关系,并提醒 .prj 坐标参考需要单独管理。371 收藏 -
用 Go bufio.Reader.Peek 判断固定字节边界,区分完整输入、提前 EOF、ErrBufferFull 和底层读取错误,并给出安全消费与审计清单。371 收藏 -
Go hash/crc32.MakeTable 可以把自定义 CRC 多项式转换成可复用的校验表。本文用 CRC32-Q 说明如何一次创建、重复计算,并区分多项式表示、哈希状态与安全摘要边界。371 收藏 -
围绕 go mod why 常见报错,区分包路径与模块路径,确认主模块位置,并结合 go list、go mod graph 和 replace 配置定位依赖引入原因。370 收藏 -
讲清 Go regexp.ReplaceAllStringFunc 的回调输入边界,演示如何隔离计数和去重状态,并处理并发调用、捕获组与 API 选择,避免结果串线和数据竞争。370 收藏 -
通过 Number 约束和 []T 值参数,让 Go 泛型调用从 Sum[Cents](amounts) 简化为 Sum(amounts),并说明不能推断时应保留显式类型参数的边界。370 收藏 -
用 fstest.MapFS 为依赖 fs.FS 的 Go 组件构造内存文件树,覆盖成功、文件缺失、坏数据、子目录和路径边界。370 收藏 -
Go 1.23 的 maps.Insert 可以把 iter.Seq2 产生的键值对直接写入已有 map。本文用 slices.All、maps.All 和自定义序列说明最小写法、覆盖规则、nil map 限制,并对比 Insert、Collect 与 Copy。370 收藏 -
Go 的 http.ServeContent 能基于可寻址内容自动处理 Range、Last-Modified 与条件请求。本文用完整文件端点讲清 ETag 设置、206/304 响应及大文件边界。370 收藏 -
go work sync 面向多模块 Go 工作区:它根据 workspace build list 和 MVS 选择依赖版本,并把相关结果同步回各模块的 go.mod。本文用对比方式说明 go.work、go work sync、go mod tidy 与 go get 的职责边界。370 收藏 -
Go json.Decoder 可能预读后续协议数据。本文说明如何复制 Buffered 内容,并用 io.MultiReader 按前缀优先的顺序安全交接给下一层。370 收藏 -
用 Go errors.Join 收集并发任务错误,结合 errors.Is/As 做稳定判定,并把内部聚合错误转换成可控的用户返回结果。370 收藏 -
sync.Pool 适合复用可丢弃的临时对象,但不适合保存业务状态或稳定资源。本文从对象生命周期、New/Get/Put 闭环、清空语义、容量风险和基准数据五个角度,判断一个对象是否真的值得池化。370 收藏 -
Go hash/crc64 同时提供 ISO 与 ECMA 两种预定义多项式。本文说明怎样按既有协议选择 crc64.MakeTable,如何在 Checksum、New 和 Update 之间切换,并处理分块顺序、结果字节序与非密码学边界。370 收藏