Go教程技术文章
-
用 Go strings.TrimFunc 和 rune 判定函数清理字符串两端的 Unicode 字符,掌握中文、空字符串与内部字符的处理边界。270 收藏 -
Go slices.CompactFunc 接收自定义相等函数,把连续且满足业务规则的重复项压缩为一项。本文从 Go 1.21 的迁移范围出发,说明比较规则、原地修改、尾部清零、nil 切片和非相邻重复的边界。270 收藏 -
Go cipher.StreamReader 可以把已有的 cipher.Stream 与 io.Reader 组合成按需解密的读取器。本文说明密文 Reader、流密码、分块读取、EOF 处理、资源关闭和 AEAD 安全边界。270 收藏 -
Go exec.Cmd 应从命令环境副本追加受控覆盖,避免显式 Env 丢失继承项。本文说明 nil 与空切片、Dir 和 PWD、空值与删除,并给出完整示例及敏感变量继承的限制。269 收藏 -
用 fs.ValidPath 校验虚拟路径,再通过 path.Join 把调用方名称映射到带前缀的底层 FS,并说明 fs.Sub、错误路径和安全边界的取舍。269 收藏 -
围绕 os.ReadDir、File.ReadDir 和 io/fs.ReadDirFS 讲清目录条目的排序、分页、io.EOF 与 DirEntry 信息读取边界,帮助 Go 程序按场景选择接口。269 收藏 -
Go 泛型可以用 comparable 约束元素、用 map 记录已见值,在不改变输入顺序的情况下完成全局切片去重;元素不可比较时再通过 key 函数提取业务键。269 收藏 -
Go regexp.Regexp.NumSubexp 统计的是正则表达式中的捕获组数量,不包含完整匹配本身。本文用普通组、命名组和非捕获组说明结果下标怎样对应。269 收藏 -
Go time.NewTimer 的关键不在于记住一段固定模板,而在于区分提前取消、已经触发和再次复用。本文用请求超时场景说明 Stop、Reset、C 的配合方式,并补充 Go 1.23 及以上与旧版本的差异。269 收藏 -
Go 1.23 引入 iter.Seq 后,可以把过滤逻辑封装成惰性迭代器。本文从 yield 控制出发,演示多个过滤条件如何组合,以及下游返回 false 时怎样让上游及时停止。268 收藏 -
Go sync.Pool 适合缓存短生命周期、可安全丢弃的临时对象。本文用 bytes.Buffer 示例说明 Get 后覆盖、使用中独占、Put 前 Reset,以及切片引用和异步访问的生命周期边界。268 收藏 -
Go atomic.Int64保证单字段操作原子,但多个Load不构成同一时刻快照。本文用完整小程序说明并发加减、运行期采样、最终计数与周期取差,并归纳重置和对象复制的边界。267 收藏 -
Go net/url 解析带端口的域名和 IPv6 URL 时,Host、Hostname()、Port() 容易混用。本文用最小示例说明如何读取主机与端口,并处理方括号、Zone、缺失端口和非法端口边界。267 收藏 -
用 Go 标准库 debug/elf 打开 ELF 文件,遍历 File.Sections 读取节区名称、类型、偏移和大小,并说明 Section、Data、Open 之间的选择与特殊节区边界。267 收藏 -
Go math/bits.Div32 把两个 uint32 组成的双字被除数除以 uint32,并返回商和余数。本文拆开说明 y==0 与 y<=hi 的 panic 条件,给出安全参数检查和边界判断,避免把商溢出误认为普通除法结果。267 收藏