go的基本数据类型都有默认值。
那么现在遇到一个问题,使用结构体映射前端传来的参数,有时候某些参数会为空或者默认值也是有意义的。
比如:
结构体中有个成员是int类型 int的默认值是0 ,但是0值在我的业务逻辑中有其具体意义。
想请教各位在前端-后端-数据库这个过程中怎么处理这个问题的。
目前已知集中解决方案:
1、业务中有具体意义的内容规避掉默认值,但这个显然有点因噎废食了。
2、budiler设计,这个也是比较麻烦。
3、指针类型,但是需要在整个流程中进行多次处理,也麻烦。
请教大家有没有别的什么看法。
谢谢大家。
方案都被你说出来了你自己选呗。。反正我们go后端定义接口,要求不能出现默认值,除非真的必要。如果要判断基础类型个人觉得最好用指针。如果是定义的结构体,可以自定义json反序列化接口实现一个你自己的判空逻辑。
#1
更多评论