Go教程技术文章
-
fs.Glob 在指定 fs.FS 内按 path.Match 模式查找路径。本文用模板发现示例说明相对根、斜杠、通配符层级、空结果和模式错误,并解释为何它不能承担读取权限或完整性检查。257 收藏 -
本文用 Go io.Pipe 连接生产者与消费者,说明同步无缓冲读写、正常关闭、CloseWithError 错误传播、读端提前退出和适用边界。100 收藏 -
Go io.ReaderFrom 是 Writer 端参与流式复制的接口。本文从 ReadFrom 的 EOF、字节计数和短写契约讲起,说明 io.Copy 为什么优先选源端 WriterTo,再回退到目标端 ReaderFrom,以及 CopyBuffer 和性能判断中的常见误区。323 收藏 -
Go math/bits.Div32 把两个 uint32 组成的双字被除数除以 uint32,并返回商和余数。本文拆开说明 y==0 与 y<=hi 的 panic 条件,给出安全参数检查和边界判断,避免把商溢出误认为普通除法结果。267 收藏 -
用 Go testing/fstest.MapFS 构造内存文件,演示 ReadFile 读取指定路径,并用 errors.Is 区分非法路径、文件不存在和正常结果。253 收藏 -
Go testing.T.Errorf 等价于记录格式化错误日志后调用 Fail:当前测试会被标记为失败,但函数仍会继续执行。本文用表格测试说明如何保留多个失败项,并对比 Fatalf 的立即停止边界、前置条件判断和并发调用注意事项。280 收藏 -
Go atomic.Uint32.And 用按位与原子清除指定标志,并返回更新前的完整位图。本文说明 ^mask 的正确写法、组合状态处理和并发边界。111 收藏 -
Go atomic.Uint64.CompareAndSwap 把旧值比较和新值写入绑定为一次原子条件更新。本文对比 Load 加 Store 的竞态,给出一次尝试与带重试的写法,并说明 false、零值、多字段一致性和高竞争边界。423 收藏 -
Go 的 ed25519.PrivateKey 是 64 字节表示,而 RFC 8032 语境里的种子是 32 字节。本文用 PrivateKey.Seed 读取种子,说明如何校验长度、复制敏感材料,以及用 NewKeyFromSeed 重新构造私钥。414 收藏 -
sync.OnceFunc 把无参无返回值函数包装成可并发调用的一次性入口。本文给出对象级初始化示例,解释包装函数应共享、并发调用等待完成、panic 重复传播,以及重试和初始化后修改的边界。359 收藏 -
math/bits.Add64 用两个 uint64 和一个 0 或 1 的输入进位计算固定宽度和,同时返回 sum 与 carry-out。本文从返回值契约讲到两个 64 位字的 128 位加法,说明如何传递低位进位并处理最终溢出。278 收藏 -
Go 中两个 uint32 相乘可能得到 64 位结果,直接用 uint32 相乘只会保留低 32 位。本文结合 math/bits.Mul32 说明 hi、lo 的含义、完整结果的重组方式,以及窄类型乘法最容易出现的误用。201 收藏 -
Go slog.Level.String 会把 DEBUG、INFO、WARN、ERROR 以及它们之间的数值级别转换成可读文本。本文说明自定义偏移、JSON 与文本配置复用规则,以及外部输入和审计记录的边界。138 收藏 -
Go slices.Reverse 会直接交换切片中的元素,不返回新切片。本文说明它的最小用法、命名切片类型、nil/空切片边界,以及需要先复制的别名场景。196 收藏 -
Go maps.Clone 会复制一个新的 map 容器,并在输入为 nil 时保留 nil 语义。本文从配置快照场景说明 nil 与空 map 的区别、顶层修改的独立性,以及嵌套切片仍共享的浅复制边界。179 收藏