从源码中查找错误原因,3个例子
go-zero配置文件使用validate tag,读取失败
MustLoad执行完没报错,但是发现读出来的字段的值是0,然后尝试在valildate tag前面加一个yaml tag,还是不行。
1) 点进MustLoad源码去看:
2) 再点进Load函数:
Load函数返回了一个loader函数,而loader函数又是来自一个叫loaders的map
3) 查看loaders
配置文件是用yaml写的,那就点LoadFromYamlBytes函数
4)查看LoadFromYamlBytes函数
原来是先把yaml转换成json,再进行解析。把yaml tag换成json tag果真解决了问题
gomock redis
报错:redis: unexpected type=int for Int,
res和err都是从 c.cmd.Eval().Int()里面返回的,点进去:
要么是int64要么是string,把mockCmd.SetVal(0)改成mockCmd.SetVal(int64(0))即可
http库创建请求时爆空指针
业务代码:
安装http规范,一个POST请求的body是可以为null的
点进去:
是在这一行爆空指针
说明是v是nil,调用Len()的时候爆空指针
业务代码里的body就是nil
解决方案:
最后更新于