Go教程技术文章
-
Go maps.Keys 返回无序键迭代器;文章用原创示例区分切片收集与排序,说明空 map、旧版本替代写法,以及结构体键完整比较规则,帮助得到排列可重复的键列表。320 收藏 -
Go netip.Addr.Is4In6 专门判断 IPv4-mapped IPv6 地址,也就是 ::ffff:0:0/96。本文结合输入解析和请求来源规范化,说明它与 Is4、Is6、Unmap 的关系,以及 IPv4、映射 IPv6、普通 IPv6 和无效地址的处理边界。320 收藏 -
通过保留证书验证的Go TLS诊断示例解释ALPN配置与读取时机,定位空协议、有效配置、代理终止及应用实现不匹配问题。320 收藏 -
Go database/sql 通过 Rows.ColumnTypes 读取查询结果的列名、数据库类型、长度、精度、可空性和建议扫描类型,并说明驱动不支持与 SQL NULL 的处理边界。319 收藏 -
Go text/template 的自定义函数要先放进 template.FuncMap,再通过 Funcs 绑定并 Parse 模板。本文说明注册时机、函数签名、管道调用、错误处理,以及解析后替换同名函数的边界。319 收藏 -
Go sort.Interface 稳定排序应使用 sort.Stable,切片可用 SliceStable;通过整数优先级案例说明严格比较、重复键等价关系、原始次序与自测方法。319 收藏 -
Go errors.As 可以沿着 %w 形成的错误链查找目标类型,并把匹配到的错误写入目标变量。本文说明多层包装、指针目标、首次匹配和自定义 As 方法的正确用法。319 收藏 -
Go 的 crypto/ecdsa Sign 不会把摘要长度简单地强制要求为曲线阶长度;摘要过长时会按曲线阶位数截断。本文用一个小型签名器说明如何显式检查、调用 Sign 并配套验证。319 收藏 -
Go humanize 的 BigComma 可以把 math/big.Int 转成带千位分隔符的十进制文本。本文从超出 int64 的字符串解析开始,说明正负数、零值、解析错误和 BigCommaf 的适用边界。319 收藏 -
使用 Go oggvorbis 解码 OGG/Vorbis 文件时,先读取声道数,再按“目标帧数×声道数”分配 float32 缓冲区,把 Read 返回的交错样本值换算为完整音频帧后分批消费。319 收藏 -
Go bitset 枚举置位索引时,Go 1.23 及以上优先使用 EachSet 配合 range,旧版本使用 NextSet 循环;本文还说明 NextSetMany、Count、Len、空集合和并发访问边界。319 收藏 -
Go filepath.Rel 在 Windows 上已支持盘符与 UNC 共享卷名。本文用完整绝对路径封装说明同卷计算、跨卷错误、盘符相对路径与 Linux 处理 Windows 路径文本的区别。319 收藏 -
用 Go AST 读取 ast.File.Imports,解析每条 ImportSpec 的导入路径、显式别名、点导入和下划线导入,并用 FileSet 还原源码位置。319 收藏 -
Go 1.27 会识别已经移除的 GODEBUG 设置,但只接受移除前的最终默认值。文章比较 go.mod 与源码配置位置,并用 asynctimerchan 说明保留和报错边界。318 收藏 -
用 httptest.NewTLSServer 创建带测试证书的 HTTPS 服务,再使用 server.Client 发起请求,完成 Go 接口单元测试并避开本地证书校验误区。318 收藏