Go教程技术文章
-
Go GJSON 读取多个不同路径时,不需要为每个字段重复处理整段 JSON。本文用 Parse 和 Result.Get 复用一次解析结果,再说明数组投影、多路径对象、缺失字段与类型转换的边界。311 收藏 -
Go context.Value 适合传递跨 API 边界的轻量请求元数据,但不适合可选参数、必需业务参数、大型对象或可变状态。本文用包私有 key、类型安全读写函数和 HTTP 中间件示例说明其边界。311 收藏 -
Go database/sql.NamedArg 可以把业务参数名和值一起传给数据库接口,但 SQL 占位符语法和驱动支持仍需匹配。本文用查询、重复引用和排错示例说明命名参数的正确边界。311 收藏 -
Go reflect 中,IsValid 判断 Value 是否有效,IsZero 判断有效值是否为其类型的零值。本文用字段查找、nil 接口和指针示例说明两者的调用顺序与 panic 边界。311 收藏 -
Go 1.27 可通过 tls.Config.CurvePreferences 显式加入 tls.MLKEM1024;列表是支持集合,不能替代双方能力协商。311 收藏 -
用指针与Elem准备Go reflect.Value.Set的目标存储,区分CanAddr和CanSet,给出受限赋值函数,并说明类型可赋、未导出字段、接口槽位及批量配置的处理边界。311 收藏 -
Go NATS 客户端要让多个订阅者分担同一主题消息,应使用 QueueSubscribe 并让主题和队列组名完全一致。本文区分普通订阅、队列组与 JetStream 的边界,说明重复消费和可靠性误判的排查方法。311 收藏 -
Go go-smtp 可以通过 DialStartTLS 把已有的 SMTP 主机连接升级为 TLS,再在同一个 Client 上完成认证和发信。本文说明 tls.Config、587 与 465 端口、已有 net.Conn 以及关闭连接时的边界。311 收藏 -
Go strings.Clone 会为非空字符串创建新的数据副本,适合长期保存小片段、避免继续保留大输入的场景;本文说明它的使用边界、空字符串行为、版本要求和 profiling 取舍。311 收藏 -
bytes.CutPrefix 返回原字节切片的视图。本文展示怎样复用输入工作区、将载荷复制到已有目标空间,以及在跨轮或异步保存时正确建立独立结果。311 收藏 -
Go slog.ReplaceAttr 的 groups 参数表示当前叶子属性所在的打开分组路径。本文用根属性、嵌套分组和定向脱敏示例说明如何按路径判断,避免误删同名字段。311 收藏 -
以旧式回调遍历迁移为场景,使用 Go 1.23 的 range over func 和 iter.Seq 实现可提前停止的函数迭代器,并说明 yield=false、版本和资源边界。311 收藏 -
用独立HTTP入口暴露Go批处理指标,启动时注册固定计数器并批末合并,说明权限、采集口径、分配开销与失败处理边界。311 收藏 -
用 netip.ParseAddrPort 统一校验 host:port 输入,拆开 IPv4、IPv6 方括号、缺失端口和端口越界等边界,并给出可复用的 Go 代码。310 收藏 -
Go 的 parser.SkipObjectResolution 会跳过已经过时的语法级对象解析,减少解析阶段的 CPU 和内存开销。本文用 ParseFile、ast.File 和 go/types 的最小示例说明它保留什么、舍弃什么,以及何时必须补上类型检查。310 收藏