我正试图从引用中获取 map ,但断言似乎失败了:
session.AddFlash(gin.H{
"username": username,
"password": password,
}, "_post")
...
flashes := session.Flashes("_post")
if flashes != nil {
flash = flashes[0]
fmt.Printf("%T\n", flash)
if post_data, ok := flash.(gin.H); ok {
fmt.Println("post_data:", post_data)
data = post_data
} else {
fmt.Println("post_data(failed):", post_data)
}
}
但是我总是得到以下输出,断言失败了:
*gin.H
post_data(failed): map[]
我认为这是由于我所做的断言,所以我已经尝试过:
if post_data, ok := (*flash).(gin.H); ok {
但随后我得到了 invalid indirect of flash (type interface {})
我也试过:
if post_data, ok := *flash.(gin.H); ok {
但这给了我 invalid indirect of flash.(gin.H) (type gin.H)
最佳答案
您将 *
放在了错误的位置。它应该是 flash.(*gin.H)
。
关于dictionary - 落在引用/指针上的类型断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37352080/