Go问答技术文章
-
Go 官方仓库的新问题显示,在 testing/synctest 的 bubble 内调用 t.Skip,内层会退出,但外层测试仍可能显示 PASS。文章解释两个 testing.T 的状态边界,并给出问题确认前更稳妥的跳过写法。373 收藏 -
Go 1.27 的链接器可用 -macos 与 -macsdk 写入 Mach-O 的 LC_BUILD_VERSION。本文说明两个参数分别控制什么、为什么最低系统声明不等于真实兼容,以及发布前如何核对。285 收藏 -
Golang · Go问答 | 19小时前 | go · Go问答 · 版本迁移 · X.509 · Go 1.27 crypto/x509/pkix pkix.Name RDNSequence OID
Go 1.27 调整了 pkix.RDNSequence.String 和 Name.String 对未知 OID 字符串属性的展示方式。本文说明哪些日志与快照会变化,以及如何避免把格式化文本当成稳定协议。466 收藏 -
Go 1.27 的 runtime/secret 用 Do 包住机密计算时,新建 goroutine 会继承 secret mode,但它不是万能的内存清理器。本文拆开 Enabled、堆对象可达性、全局变量、平台支持和 GOEXPERIMENT=runtimesecret 的边界,帮助你判断这项实验能力能否放进密码学代码。180 收藏 -
Golang · Go问答 | 20小时前 | go · 性能排查 · 运行时 · Go 1.27 · 内存分配 Go 1.27 size-specialized malloc GOEXPERIMENT
Go 1.27 为小对象引入 size-specialized memory allocation。文章解释小于 80 字节的分配为何可能受益、整体收益为何不能照搬,以及如何用基准、二进制体积和 GOEXPERIMENT 做上线判断。395 收藏 -
Golang · Go问答 | 22小时前 | go · TLS · 网络安全 · 版本迁移 · 证书链 · crypto/tls Go 1.27 TLS 1.3 ConnectionState.LocalCertificate PeerCertificates
Go 1.27 为 tls.ConnectionState 增加 LocalCertificate,用来读取本端在握手中发送的证书链。它和 PeerCertificates 的方向相反,读取时机也不同。本文用最小代码拆开字段语义、握手后读取方式、mTLS 审计边界与升级检查。480 收藏 -
Go 1.27 将 runtime/pprof 的 goroutineleak profile 正式开放,用垃圾回收可达性发现一部分永久阻塞的 goroutine。本文说明采集入口、HTTP 端点、可识别范围和全局可达对象造成的漏检边界。465 收藏 -
Go 1.27 调整了 //line 与 /*line*/ 指令中相对文件名的解析基准。本文用生成代码场景说明目录基准、绝对路径、诊断核对和发布前检查,避免错误定位把锅甩给业务代码。192 收藏 -
Go 1.27 将 runtime/pprof 的 goroutineleak profile 作为正式能力,但它依赖垃圾回收可达性判断,并不能覆盖所有永久阻塞。本文用全局 channel 场景拆解它能发现什么、为什么会漏报,以及工程上如何补查。351 收藏 -
Go 1.27 为 compile、link、asm、cgo、cover、pack 增加响应文件支持。本文用一个小型 CI 参数契约说明 @file 的解析范围、引号与反斜杠换行规则,以及升级后的回滚验收方法。377 收藏 -
Go 1.27 的 go test 默认启用 stdversion vet,会按 go.mod 的 go 指令和文件构建条件检查标准库符号是否超出兼容版本。本文用 slices.Values 说明告警来源、修复选择和 CI 验收边界。348 收藏 -
Golang · Go问答 | 1天前 | Go问答 · Go 1.27 · 类型系统 · go/types · Go 1.27 类型缓存 go/types.Hasher HasherIgnoreTags Identical
Go 1.27 为 go/types 增加 Hasher 与 HasherIgnoreTags,用于为 Type 提供与 Identical 或 IdenticalIgnoreTags 一致的哈希关系。本文从类型分析缓存键冲突场景出发,说明 Hash、Equal、maphash.Hash 和结构体标签的边界。383 收藏 -
Go 1.27 对 go.mod 的多组 require 块做了结构整理。本文从合并冲突和手工编辑后的现场出发,解释何时会重排、注释如何归属,以及升级后怎样做最小复查。298 收藏 -
Go 1.27 新增 uuid 标准库包,提供 New、NewV4、NewV7、Parse 等 API。本文用请求 ID 和数据库主键两个场景说明随机 UUID、时间有序 UUID、Parse 与 MustParse 的选择边界,帮助已有第三方依赖的项目平稳迁移。463 收藏 -
Go 1.27 已永久移除 asynctimerchan,旧行为值写在 go.mod 或 //go:debug 中会被拒绝。本文比较删除配置、暂留最终默认值与短期固定旧工具链三种处理方式。480 收藏