1.为什么我明明引入了某个包,但是在vendor目录下查看该包下的某个子包不见了?
使用go mod vendor 将依赖包放到vendor目录时,只把项目中import的部分复制到了vendor目录,对于一个git仓库的中的其他包却没有复制。如果想要用这个子包,你需要把项目中import一下这个子包,然后重新执行go mod vendor就可以看到了。
2.json反序列化
var result *TokenInfoEntity 错误 只是定义类型,空指针/nil型,并未分配初始化,分配地址空间
result := new(TokenInfoEntity) 正确 完成初始化,分配地址空间
json.Unmarshal(cacheRes, result) 需要传入的是一个数据结构的指针
- 当函数返回的数据为指向数据接口的指针时,需要注意判断空指针的情况,否则会出现runtime error: invalid memory address or nil pointer dereference
4.函数返回参数定义为result map[int][]questionmodel.QuestionEntity,代码中如果要使用此结构需要先进行初始化 result = make(map[int][]questionmodel.QuestionEntity, 0),否则会报assignment to nil map