Go教程技术文章
-
Go 1.26 为 runtime/metrics 增加了更细的调度指标。本文用一段紧凑的采样代码区分 runnable、waiting、running、GOMAXPROCS、运行时线程数与创建总量,说明哪些组合能提示排队或阻塞,哪些结论不能只靠一个数字得出。405 收藏 -
Go 1.26 迁移 B.Loop 基准时,重点不是把 b.N 换成一个新方法名,而是确认计时边界、函数调用保活、内联变化和死代码消除没有改变被测对象。402 收藏 -
围绕 Go 1.26 Green Tea GC 的小对象标记扫描、同口径基准和 nogreenteagc 回退对照,说明如何判断收益与定位回归。201 收藏 -
用 pkg.go.dev API 读取 Go 包、模块和版本元数据,处理路径歧义、构建上下文与分页,并划清目录数据和本地构建验证的边界。481 收藏 -
Go 1.27 会整理 go.mod 中多个 require 块。本文从升级后的差异现场出发,说明 direct 与 indirect 分组的触发条件、验证方法和 CI 防复发做法。331 收藏 -
Go 1.27.1 是小版本升级,但官方修复范围触及 cgo、编译器、runtime 和多个标准库。本文把这些范围映射成构建、运行与接口行为回归矩阵,帮助项目决定直接升级、灰度还是保留临时回退开关。240 收藏 -
Go 1.27 简化了函数文字符号名,并可能合并内联后的同一函数文字。升级后不要再用符号名或函数代码指针判断闭包身份,改用稳定的行为断言和显式测试标识。279 收藏 -
Go 1.27 改进 compress/flate 编码速度后,同一输入的压缩字节可能变化,gzip、zip、zlib 和 png 也可能出现派生差异。本文从 CI 快照失败入手,给出区分字节变化与数据损坏的检查方式,并把测试改成稳定的语义断言。101 收藏 -
Go 1.27 调整 go tool trace -http 的默认监听行为。本文用一个小型诊断工具说明只写端口、显式写 localhost 和绑定远程地址的差异,并给出升级后可复查的监听边界清单。338 收藏 -
Go 1.27 将 unicode 包及相关支持从 Unicode 15 升到 Unicode 17。本文用 RangeTable、IsLetter、IsDigit 和 UTF-8 校验拆开说明升级后业务字符规则的回归边界。185 收藏 -
Go 1.27 的 go/constant.StringLen 能在不完整构造字符串的情况下计算字符串常量长度。本文用最小示例说明它与 StringVal 的区别、UTF-8 字节边界、Unknown 行为、非字符串 panic 以及旧版本降级方式。301 收藏 -
Go 1.27 为 go/scanner.Scanner 增加 End 方法。本文用 token.Pos、token.File.Offset 和半开区间说明它如何给源码分析工具提供可靠的 token 结束位置,避免继续手算偏移。155 收藏 -
Go 1.27 为 go/types 增加 Hasher 与 HasherIgnoreTags。本文用结构体标签和 maphash 说明两套类型等价关系如何生成一致缓存键,以及碰撞、种子和并发边界。129 收藏 -
Go 1.27 为 QUIC 服务端握手增加 QUICConfig.ClientHelloInfoConn,用来指定 ClientHelloInfo.Conn 的底层连接。本文区分 TLS Conn、QUICConn 与底层 net.Conn,说明只读边界和回调取值方式。498 收藏 -
Go 1.27 改变了 Darwin 与 Windows 上 x509.SystemCertPool 对 SSL_CERT_FILE、SSL_CERT_DIR 的处理。本文按证书来源、TLS 配置、GODEBUG 回退和跨平台回归四个边界,说明旧项目该怎么排查。405 收藏