Go教程技术文章
-
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 收藏 -
Go 1.27.1 已于 2026 年 9 月 1 日发布。本文按 cgo、编译器、运行时和 net/http 拆解修复范围,并给出升级前后的检查顺序与回滚边界。380 收藏 -
Go 1.27 将 macOS 支持门槛提高到 macOS 13 Ventura。本文用构建机、目标平台和 cgo 三层检查,帮助你判断旧 macOS 是否会在升级后卡住。187 收藏 -
Go 1.27 新增 bytes.CutLast,可按最后一个分隔符返回 before、after 和 found。文章对比 LastIndex 手写切片,说明缺失分隔符与共享底层数组的边界。276 收藏 -
Go 1.27 移除了 go 命令对 bzr 的直接拉取支持。本文讲清代理与直连差异、两条迁移路线,以及干净缓存和 CI 的验收方法。331 收藏 -
Go 1.27 会在 ecdsa.PrivateKey.Sign 收到非空 SignerOpts 时核对哈希算法与摘要长度。文章说明新增检查、常见升级报错和签名适配器的审计方法。212 收藏