Go教程技术文章
-
用 time.Ticker 做周期任务时,停止条件、空输入和任务错误应该分开处理。本文从 NewTicker、select、context 和 defer Stop 讲清一个可复用的实现边界,并补充 Go 1.23 之后的回收语义。276 收藏 -
Go 的 URL.Path 是解码后的路径语义,EscapedPath() 面向转义表示;本文用 %2F 示例说明路由匹配、日志记录和请求拼接时该怎么选。275 收藏 -
Go base64.NewEncoder 写入成功不代表尾部已输出。文章解释三字节分组与尾部缓冲,给出检查 Copy、Close 错误的封装,区分编码器、缓冲层与文件收尾,并补充尾部长度测试与无填充编码边界。275 收藏 -
Go context.WithoutCancel 可以保留父 context 中的请求级值,同时切断取消信号。本文用收尾任务示例说明它的语义、独立超时写法、适用边界和常见误区。275 收藏 -
Go hash/maphash 的 Seed 决定 Hash 使用的哈希函数。本文说明怎样用 SetSeed 让多个 Hash 实例使用同一个进程内 Seed,如何用于并发计算,以及调用时会清空已有输入的边界。275 收藏 -
Go strconv.FormatBool 可以把 bool 稳定转换成 true 或 false 文本。本文从最小写法出发,说明它与 fmt 通用格式化、ParseBool 和 JSON 序列化的边界,帮助你在日志、键值字段和文本接口中选对转换方式。275 收藏 -
Go sync/atomic.AndUint64 可以用一个按位 AND 原子更新 uint64 状态字。清除指定状态位时要传入反掩码,函数返回清除前的旧值;本文还说明 64 位对齐与 atomic.Uint64.And 的选择边界。275 收藏 -
Go finalizer 遇到相互引用的对象环时,回收顺序无法建立,终结器也不保证执行。本文用显式 Close、断开反向引用和运行时诊断,把资源释放改成可控的工程路径。274 收藏 -
用 Go 的 debug/elf 读取 ELF 文件头,结合 FileHeader.Machine、Class 和 Data 判断目标架构,并区分元数据识别与完整运行兼容性检查。274 收藏 -
Go 中修改已有 URL 时,不要直接拼接查询字符串。本文用 net/url 解析 URL,通过 Query、Set、Del 和 Encode 只更新 RawQuery,同时保留路径、主机和片段。274 收藏 -
Go 的 os.MkdirTemp 会在指定或系统临时目录下创建带随机后缀的独立目录。本文用一个小型工作目录场景说明参数、权限、返回路径、清理责任和常见错误边界。274 收藏 -
Go bytes.Lines 把 []byte 转成按行遍历的单次迭代器。本文说明换行符、末尾残行、CRLF 处理、切片生命周期,以及它与 bytes.Split 和 bufio 流式读取的取舍。274 收藏 -
Go 的 flag.FlagSet 通过 ContinueOnError 把参数解析失败交给调用方处理。本文比较三种 ErrorHandling 策略,并给出可复用、可测试的解析函数写法。273 收藏 -
围绕 Go strings.Builder 的 Len、Cap 与 Grow,说明如何按 UTF-8 字节数预估容量、减少可预见的重复扩容,并处理动态字段、负数 Grow 与 Builder 复制边界。273 收藏 -
本文用 Go 标准库 crypto/hpke 的一次性 Seal/Open 接口,演示接收方公钥、封装密钥和短消息密文之间的关系,并说明 info、密文拼接格式以及解封失败时的处理边界。273 收藏