很不习惯go语言结构体中基本数据类型默认值

weixin_38059994 2019-09-20 10:07:41
java有自动拆装箱,所以可以避开默认值的影响(js和python这些解释性语言也没这个问题),看了go的一些orm和参数校验框架,orm使用各种方式来避免默认值的影响,参数校验框架如果前端传的参数和默认值一样直接就验证不通过(gin的validator).....,真的太难受了
...全文
345 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38073387 2019-09-20
  • 打赏
  • 举报
回复
使用map试试咯 key不存在 就没有值
weixin_38079250 2019-09-20
  • 打赏
  • 举报
回复
用指针类型不行吗?
weixin_38086192 2019-09-20
  • 打赏
  • 举报
回复
既然都用 go 开发,怎么还用 java 的思想,那为什么用 go 写,感觉只是换个编程语言而已 😆。
weixin_38096686 2019-09-20
  • 打赏
  • 举报
回复
并没有使用java的思想,只是举个例子看看go上有没有类似或者其他的解决方案,之前使用过js,python,主java,都没有碰到过这个问题,学习go web开发校验参数才碰到这个问题
weixin_38101771 2019-09-20
  • 打赏
  • 举报
回复
我目前使用的就是指针的方式,接受参数都新建接口对应的结构体,orm框架使用的数据库映射结构体不支持指针属性
weixin_38101966 2019-09-20
  • 打赏
  • 举报
回复
接口参数使用map那校验起来仍然麻烦
weixin_38105175 2019-09-20
  • 打赏
  • 举报
回复
那就是框架问题。 看看是否有合适的框架或者orm/验证组件了。
weixin_38107912 2019-09-20
  • 打赏
  • 举报
回复
其实楼主可能不知道的是,编译型的语言变量都有默认值的。 go只不过遵从了这一惯例而已。 不过针对数据库ORM这块go的确欠缺一个特殊的NULL值。 其它语言是由这样的类型支持和处理的。
weixin_38119488 2019-09-20
  • 打赏
  • 举报
回复
默认值这个是知道的(java基本数据类型和go差不多,但是java提供了包装数据类型),默认值会存在我上面说的一些问题,但是go或go的框架目前没有能完全解决默认值的一些影响,尤其是go web或者rpc中,传没传参数和没传参数直接默认值还是区别很大的
weixin_38069804 2019-09-20
  • 打赏
  • 举报
回复
... 我觉得你应该想一下,有没有什么办法,让一个字段既可以代表一个string,也能代表ull 就没问题了。

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧