Go教程技术文章
-
用 io.LimitReader 约束读取配额,以 io.CopyBuffer 和独占缓冲减少整段临时存储,说明专用复制接口、超限判定与并发复用的边界。302 收藏 -
Go 1.23 起可以用 maps.Values 提取 map 的值迭代器,再按需用 slices.Collect 收集成切片或用 slices.Sorted 建立稳定顺序。本文说明直接遍历、收集、排序、重复值和旧版本兼容边界。301 收藏 -
Go sqlx 组合命名参数与 IN 列表时,应先用 Named 把 :name 转为问号参数,再用 In 展开切片,最后按数据库驱动调用 Rebind。本文说明调用顺序、空切片边界和可复用查询写法。301 收藏 -
用 Go 的 go-shp 包读取 Shapefile 伴随的 DBF 属性字段,解释 Fields、Shape 返回的零基行号、ReadAttribute 和 Err 的配合方式。301 收藏 -
Go os.Root 可以把文件操作限制在指定目录树内,避免服务入口只靠字符串拼接判断路径。本文用 OpenRoot、Root.Open 和 Root.OpenFile 说明读取、写入、符号链接、fs.FS 复用与平台边界。301 收藏 -
本文用一个小型 Go 示例说明 weak.Make、weak.Pointer.Value、nil 输入和 runtime.KeepAlive 的关系,帮助你判断弱引用适合缓存还是不适合承担生命周期保证。301 收藏 -
用 Go afero 的 BasePathFs 为导出逻辑建立工作目录边界,演示相对路径写入、父目录创建、越界失败和安全边界判断。300 收藏 -
用 Go 的 base64.RawURLEncoding 生成不带等号的 URL 安全令牌,讲清字母表、编码解码、填充兼容和长度错误的处理边界。300 收藏 -
Go sort.SliceStable 会按比较函数原地排序,并保持比较结果相等的记录在输入中的相对顺序。文章用带序号的记录拆开稳定性与副本两个问题,给出同键比较、原地排序和 copy 后排序的可用写法。300 收藏 -
Go iter.Pull 把 iter.Seq 的推送式遍历转换为 next 拉取,并返回 stop 管理提前退出。本文用两个序列的并行读取说明 next、ok 和 defer stop 的职责边界。300 收藏 -
用 strconv.AppendFloat 生成浮点文本时,format 决定外形,prec 决定小数位或有效数字,bitSize 决定按 float32 还是 float64 的语义格式化;本文给出参数组合和缓冲区追加写法。300 收藏 -
Go path.Match 用 shell 风格通配符判断完整资源名,星号和问号不会跨过斜杠。本文说明 path 与 filepath 的边界、完整匹配规则、ErrBadPattern 处理和资源名筛选的落地清单。300 收藏 -
用 Go Lumberjack v2 的 MaxSize 按文件大小触发日志轮转,并梳理 MaxBackups、MaxAge、Compress 与单进程写入边界。300 收藏 -
Go循环拼接怎样减少临时分配?从字节预算、Grow预留和WriteString用法入手,说明结果持有、禁止复制与Reset边界,并给出分配比较方法。299 收藏 -
用 go test -race 从冲突访问栈和 goroutine 创建栈定位共享 map 竞态,再用同一把 sync.RWMutex 覆盖读取、写入和遍历路径。299 收藏