Go教程技术文章
-
用 Go archive/zip.FileHeader.SetMode 把文件模式写入 ZIP 条目,配合 CreateHeader 创建归档,并说明解压端读取权限、Unix 元数据和跨平台边界。243 收藏 -
filepath.Rel 只计算 basePath 与 targPath 的词法相对关系,不会自动阻止目标路径越出根目录。本文用 Go 示例说明如何处理返回错误、判断 .. 或 ../ 越界结果,并解释 Clean 与符号链接带来的边界。243 收藏 -
reflect.TypeFor 读取的是泛型参数的静态类型,不会因为没有动态值而返回空类型;真正需要单独处理 nil 接口的是 reflect.TypeOf。本文用一个类型描述小工具串起两种 API,并处理 Kind、Elem 和不支持展开的异常分支。243 收藏 -
使用 Go archive/tar.Writer.WriteHeader 写入目录 Header 时,关键是设置 tar.TypeDir、规范 Name,并把目录视为无数据体条目;随后再通过新的 Header 写入目录中的普通文件。243 收藏 -
Go 1.23+ 可以用 maps.All 把 map 暴露为 iter.Seq2。本文从最小封装开始,说明如何组合过滤、提前停止和按需收集,并提醒 map 遍历顺序不可依赖。242 收藏 -
用 Go database/sql 批量写入时,把每个批次放进独立事务,批内复用预编译语句,遇到错误及时回滚并释放资源,同时说明批次大小和提交失败的处理边界。242 收藏 -
讲清 Go 模块元数据字段、Replace 替换关系与多对象 JSON 流读取,提供保留失败状态的脚本及最小报告方案。242 收藏 -
通过ParseAddr与IsUnspecified区分0.0.0.0、::和零值Addr,给出解析错误处理、状态对照表与配置记录模型,避免将无效值误判为普通有效IP。242 收藏 -
Go strconv.QuoteToGraphic 返回双引号 Go 字符串字面量,保留 Unicode 图形字符并把制表符、换行等非图形字符转成 Go 转义。本文说明输入边界、与 QuoteToASCII 的区别,以及日志和配置展示中的选型方法。242 收藏 -
用 Go slices.Compact 编写按行去重工具,区分相邻去重和排序后全局去重,提供完整代码、输入容量限制、错误处理与数量对比,并说明性能测量和切片共享的边界。242 收藏 -
让 json.Encoder 直接写最终 Writer,减少应用层字节和字符串往返;需要暂存时复用 Buffer,同时处理容量保留、Bytes 借用、并发和错误边界,不承诺零分配。242 收藏 -
用 host:port 配置示例说明 Go flag.Value 的 String 和 Set 方法、flag.Var 注册方式、非法输入处理以及重复设置策略。241 收藏 -
用 Pond v2 的 NewSubpool 设置局部并发上限,解释子池与父池的共享额度、任务结果等待、退出顺序,以及资源预留误解和嵌套等待风险。241 收藏 -
用 tview.Form 把文本、下拉框、复选框和多行备注统一收集到 Go 结构体,说明回调绑定、键盘交互、刷新开销与空值处理。240 收藏 -
Go os.Root.Chown 只负责在 Root 范围内调用系统的属主修改能力,返回权限错误通常与当前进程的 uid/gid 权限、平台支持、文件系统策略或符号链接语义有关。本文给出最小调用、错误分类和 Chown/Lchown 的选择方式。240 收藏