我在写项目时突然遇到一个报错:
cannot convert cacheData (type interface {}) to type []uint8: need type assertion
这个报错的解决办法是:
cacheData.(TYPE)
但是如果断言失败一般会导致panic的发生。所以为了防止panic的发生,我们需要在断言前进行一定的判断,如果断言失败,那么ok的值将会是false,但是如果断言成功ok的值将会是true,同时value将会得到所期待的正确的值。示例:
value, ok := a.(string) if !ok { fmt.Println("It's not ok for type string") return } fmt.Println("The value is ", value)
如果需要具体了解,请查询 go 语言中 断言的相关资料。