Go教程技术文章
-
用一个小型 docpeek 工具说明如何把本地目录包装成 fs.FS,组合 fs.ReadDir 与 fs.ReadFile,并处理 fs.ValidPath、相对路径和符号链接边界。114 收藏 -
本文用文件名清理场景说明 strings.CutSuffix 的返回语义:命中后返回去掉后缀的字符串视图并保留 found 状态,短期使用可以减少无意义复制,跨越长生命周期时再用 strings.Clone 获取独立数据。113 收藏 -
说明 maps.Clone 对缺失键、零值和显式 nil 的保留方式,提供整数指针配置草稿复制写法,并比较浅拷贝、定制复制及并发所有权约束。113 收藏 -
Go 1.24 引入的 os.Root 可以把文件访问限制在一个目录树内。本文用批处理场景说明如何复用 Root、直接传入相对路径并及时关闭文件,在保留越界和符号链接边界的同时减少调用层反复拼接路径与建立根句柄的额外工作。113 收藏 -
Go archive/zip.File.OpenRaw 返回 ZIP 条目中未解压的原始数据。本文区分 Open 与 OpenRaw,说明如何根据压缩方法读取原始字节,并介绍原样复制条目时使用 Writer.Copy 的边界。112 收藏 -
Go net.IP.Mask 会把 IP 地址与 IPMask 按字节做按位与,把主机位清零得到网段地址。本文从 IPv4、IPv6 的掩码构造讲到 ParseCIDR、nil 结果和 IPv4 映射地址边界,帮助你稳定生成网段键。111 收藏 -
介绍 Go os.Root.Name 获取目录名称的用法,给出打开、读取和关闭示例,说明名称在诊断日志中的用途,以及它与绝对路径、实时位置和资源状态的区别。110 收藏 -
本文围绕运行时正则配置的常见故障,说明怎样使用 regexp.Compile 返回可诊断错误,在配置加载阶段保留规则名称和原始语法错误,并区分编译失败与文本匹配不到。107 收藏 -
Go unique.Make 可将重复字符串映射为可比较句柄,并通过 Value 恢复文本。本文用标签计数示例说明空输入、业务索引、并发与生命周期边界。107 收藏 -
Go os.Root.ReadFile 适合在已打开的根目录边界内读取配置、模板和小型元数据。本文说明相对路径语义、ErrNotExist 与越界错误的区分、Root 生命周期,以及何时改用 Root.Open 进行流式读取。106 收藏 -
Go slog.Logger.Enabled 可以在日志级别判断阶段提前返回,避免为不会输出的日志构造昂贵参数。本文用最小示例说明 HandlerOptions.Level、Enabled、LogAttrs 与 LogValuer 的配合边界。105 收藏 -
解释 synctest 的任务归属、channel 与 timer 关联边界,给出自包含通知测试,说明 Wait 的观察范围及启动、取消、退出应如何放进同一气泡。105 收藏 -
context.WithCancelCause 让调用方既能判断上下文已经取消,又能读取导致取消的具体错误。本文用一个可复用的 worker 示例说明 cancel、Cause、父子上下文和 nil cause 的边界。103 收藏 -
围绕 Go 1.23 引入的 iter.Pull,说明 next 返回值与 ok 标志如何判断空序列和自然结束,并用 defer stop 覆盖提前退出、限量读取与找到目标值等边界场景。102 收藏 -
Go maps.Clone 适合把一个 map 配置复制成独立的顶层工作副本,再组合读取、更新和快照导出逻辑。本文从浅复制边界出发,搭建一个小型配置工具,并说明 nil、嵌套切片和并发访问的取舍。101 收藏