gpt4 book ai didi

go - 修复 "should not use basic type string as key in context.WithValue"golint

转载 作者:IT老高 更新时间:2023-10-28 13:00:38 34 4
gpt4 key购买 nike

我正在使用 ContextWithValue 将 uuid 传递给处理此 *http.request 的后续函数。此 uuid 在授权 header 中传递给 REST 调用以识别人员。授权 token 已经过验证,需要可访问以检查调用本身是否被授权。

我用过:

ctx := context.WithValue(r.Context(), string("principal_id"), *id)

但是 golint 提示:

should not use basic type string as key in context.WithValue

什么是可以用来检索这个不是基本类型(如简单字符串)的键的最佳选择?

最佳答案

只需使用一个键类型:

type key int

const (
keyPrincipalID key = iota
// ...
)

由于您定义了一个单独的类型,它永远不会发生冲突。即使你有两个包,pkg1.key(0) != pkg2.key(0).

另请参阅:Go Blog about key collisions in context .

关于go - 修复 "should not use basic type string as key in context.WithValue"golint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40891345/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com