gpt4 book ai didi

go - 在 Go 中进行类型转换时进行错误检查

转载 作者:数据小太阳 更新时间:2023-10-29 03:30:39 24 4
gpt4 key购买 nike

我目前正在向我的 Go web 应用程序添加 JWT 身份验证,当涉及到 go 中的类型转换和失败时的自动 Panic 时,我有些担心。我的代码如下所示:
(c 是上下文包)

user := c.Get("user")
token := user.(*jwt.Token)

claims := token.Claims.(jwt.MapClaims)

fmt.Println("Username: ", claims["name"], "User ID: ", claims["jti"])

如您所见,我在多行上使用了类型转换,但如果此操作失败,它会崩溃并最终导致服务器崩溃。在这种情况下是否有任何可能的方法来检查错误?
我对使用 Go 进行 Web 开发还很陌生,所以很抱歉,感谢所有帮助!

最佳答案

类型断言 (somevar.(sometype)) 返回一个 (sometype, bool),因此您可以检查 bool。惯用的是:

token, ok := user.(*jwt.Token)
if !ok {
// handle the fail case. `token` is nil here.
}

关于go - 在 Go 中进行类型转换时进行错误检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46106894/

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