Go教程技术文章
-
Go runtime/trace.StartRegion 返回一个需要在同一 goroutine 中结束的 Region。本文用最小 trace 接入示例说明 defer、regionType、嵌套和 goroutine 边界,并比较 StartRegion、WithRegion 与 NewTask 的适用场景。112 收藏 -
通过 CEL PartialVars 与 OptPartialEval 描述尚未提供的输入,用完整 Go 示例比较未知、false 和 true,说明属性模式、结果分类和补齐输入后的重新求值。112 收藏 -
Go database/sql 在 Scan 时对 *[]byte 会保存一份调用方拥有的副本,而 *sql.RawBytes 可以避免这次复制,但数据只在下一次 Next、Scan 或 Close 前有效。本文按查询负载说明使用边界、显式复制方式和错误处理。112 收藏 -
Go archive/zip.File.OpenRaw 返回 ZIP 条目中未解压的原始数据。本文区分 Open 与 OpenRaw,说明如何根据压缩方法读取原始字节,并介绍原样复制条目时使用 Writer.Copy 的边界。112 收藏 -
Go Info.InitOrder 可在类型检查后列出包级变量初始化器。本文给出读取 Lhs、Rhs 和源码位置的示例,解释依赖排序、多返回值以及零值变量和 init 函数的范围。112 收藏 -
严格说 NewEncoder 没有单独的 Flush 方法,Close 才是完成尾部冲刷的关键动作。本文解释 3 字节分组、尾部缓冲、Close 顺序和多层 Writer 的错误处理。112 收藏 -
Go 泛型约束不是把类型随便放进尖括号,而是用类型集合明确允许哪些类型,并把可比较、可排序等操作边界交给编译器检查。本文用可比较键和值排序两个例子说明约束写法、~ 底层类型和常见误区。111 收藏 -
Go 的 http.ServeContent 已经处理了文件下载中的 Range 和 If-Modified-Since,但 ETag 需要应用自己补上。本文用一个小型下载接口拆开请求头、响应状态与验收方式,避免把 200、206、304 混成一种成功。111 收藏 -
Go strings.FieldsFunc 会把连续满足条件的字符视为一个分隔区间,并丢弃首尾分隔符。本文用混合分隔符和边界输入说明如何稳定切词、避免空字段误判。111 收藏 -
介绍GJSON读取点号键名的路径转义写法,区分Go字符串与GJSON语法,并用完整示例说明动态组件转义、字段白名单和缺失结果处理。111 收藏 -
Go 可以用带容量的 channel 保存令牌限制同时执行的任务数,并通过 context 取消等待、defer 归还令牌,避免并发失控或槽位泄漏。111 收藏 -
Go math/rand/v2 ChaCha8 同时提供 Read 和 Uint64,但两者交错调用时返回位顺序未定义。本文说明可复现测试、拆分随机源和状态快照的稳定写法。111 收藏 -
Go atomic.Uint32.And 用按位与原子清除指定标志,并返回更新前的完整位图。本文说明 ^mask 的正确写法、组合状态处理和并发边界。111 收藏 -
Go net.IP.Mask 会把 IP 地址与 IPMask 按字节做按位与,把主机位清零得到网段地址。本文从 IPv4、IPv6 的掩码构造讲到 ParseCIDR、nil 结果和 IPv4 映射地址边界,帮助你稳定生成网段键。111 收藏 -
用 go/types 对完成类型检查的 Package 取出 Scope,按稳定顺序列出包级对象,再用 Object.Exported 和 Lookup 过滤并读取导出 API 的类型信息。111 收藏