请参见下面的代码
import (
...
"context"
...
)
type myStruct struct {
ID string
Sig string
}
mySig := myStruct{
ID: "12345678",
Sig: "Secret_Signature_Token",
}
// Setting a Value associated with a Key in Context
_ := context.WithValue(ctx, "myKey", &mySig) -- 1
//Getting the same value
value, ok := ctx.Value("myKey").(*myStruct) -- 2
现在,我的问题是:上述表达式2中.(*myStruct)
的用途/含义是什么
有人可以逐步解释第二号声明。
答案 0 :(得分:1)
ctx.Value("myKey")
返回一个接口。因此.(*myStruct)
进行类型声明,将其转换为类型*myStruct
。因此,左侧的value
类型为*myStruct
,您可以访问其字段,例如value.ID
。
您的示例的版本可以在此处查看:https://play.golang.org/p/Eg0v3vuSi6y