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)  需要传入的是一个数据结构的指针
  1. 当函数返回的数据为指向数据接口的指针时,需要注意判断空指针的情况,否则会出现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