Documentation
¶
Overview ¶
Package ctxkey 提供类型安全的 context.Context 键。
问题:Go 的 context.Value 用 any 做 key,字符串 key 易冲突,各包自定 `type contextKey struct{}` 又重复且零散(beauty 的 auth/requestid/callbacks/ ratelimit/audit/afterwork/metadata 各自定义了一遍)。本包用泛型统一:
var userKey = ctxkey.New[auth.User]() var reqKey = ctxkey.New[string]()
类型参数 T 编译期约束存取类型,避免类型断言写错;每次 New 分配独立 内部指针,使同 T 的多个 Key 也互不冲突(解决了零大小结构体同类型=同 key 的问题)。
用法:在包级 var 声明时调一次 New,后续用该变量存取。不要每次存取都 New。
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
Click to show internal directories.
Click to hide internal directories.