Go教程技术文章
-
Go 1.25 的 sync.WaitGroup.Go 把任务登记和完成扣减绑定到一个函数边界,本文说明空组、嵌套任务、异常函数和 Add/Done 兼容场景的调用边界。326 收藏 -
用 Go regexp.FindAllIndex 获取每次匹配的半开字节区间,理解 n 参数、中文 UTF-8 下标,以及整体匹配和捕获组索引的区别。326 收藏 -
Go html/template 会根据变量所在的 HTML、属性和 URL 上下文自动处理输出。本文对比普通文本、查询参数和完整链接的写法,说明不安全协议为何会被过滤,以及 template.URL 的可信来源边界。326 收藏 -
Go 1.27 为 crypto/x509.Certificate 增加 RawSignatureAlgorithm,可读取证书签名算法的 DER AlgorithmIdentifier。本文说明如何从 PEM 证书解析 OID,区分原始字节与 SignatureAlgorithm,并处理未知算法、ASN.1 错误和证书验证边界。326 收藏 -
说明 Go 1.27 中 tls.MLKEM1024 的配置方式、CurvePreferences 的集合语义,以及回退候选和握手状态读取方法,区分支持配置与实际协商结果。326 收藏 -
Go 标准库 debug/macho.File.Section 可以按名称取得 Mach-O 节区。本文从打开文件、查找节区、读取元数据到选择 Data 或 Open 的完整流程,说明错误处理、资源关闭和输入边界。326 收藏 -
Go transform.Append 可将转换内容追加到已有字节缓冲区。本文说明 result、n、err 的含义,给出保留前缀的实现,并解释容量复用、状态重置和部分输出边界。326 收藏 -
用 Go beep 把有限音频包装为循环流,关键是先取得可 Seek 的 StreamSeeker,再用 Loop(-1) 循环,并用 Take、Err 和 Close 处理播放边界。326 收藏 -
Go iter.Pull2 把返回键值对的 iter.Seq2 转成 next 和 stop 两个函数,适合逐项拉取、限量读取和提前退出。本文用 maps.All 说明结束信号、defer stop、零值返回以及并发调用边界。326 收藏 -
Go filepath.Rel 用基准路径和目标路径计算操作系统相关的相对路径。本文说明参数顺序、子目录与返回上级、相对输入和不同路径卷的错误边界,并给出可复用的封装。325 收藏 -
sql.NamedArg 只是把参数名称和值交给 database/sql,能否按名字绑定还取决于驱动的占位符语法和 NamedValueChecker 等接口。本文拆开参数转换链,说明为什么有些驱动必须改用位置参数,以及如何保持参数化查询。325 收藏 -
Go Lip Gloss 里可以用一个基础 Style 保存颜色、边框和间距,再用 Inherit 让标题、正文和警告样式只补齐未设置的规则。本文对比赋值复制与继承的区别,给出 v2 写法、旧代码风险和回归检查清单。324 收藏 -
Go 基准测试中,如果目标函数的返回值完全没有用途,编译器可能把无副作用计算删掉。Go 1.24+ 优先使用精确的 b.Loop() 循环;兼容旧式 b.N 时用包级结果汇总变量保住被测结果,并把初始化和计时边界分开。324 收藏 -
用 Go net.LookupSRV 读取 SRV 服务发现记录,拆解 service、proto、cname、Target、Port、Priority、Weight 的关系,并说明如何安全组合拨号地址。324 收藏 -
Go slog 的 Handler 会过滤未启用的日志级别,但函数参数已经提前求值。本文用 logger.Enabled 在昂贵字段构造前短路,再比较格式化辅助函数与 LogValuer 的延迟计算边界。324 收藏