golang 如何处理 可空字段

golang001 · 2017-08-19 08:22:27 · 3473 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2017-08-19 08:22:27 的主题,其中的信息可能已经有所发展或是发生改变。

C#里面有 Nullable可空类型,go里int不能赋值nil,这该如何处理?数据库中可空字段null不参与求平均等统计,所以设置为默认值为0是不合适的,而sql.NullString类型就算从数据库中取得数据了,如何赋值给类里面的例如Age(int类型)? 求解!


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3473 次点击  
加入收藏 微博
5 回复  |  直到 2017-08-20 07:12:01
golang001
golang001 · #1 · 8年之前

go里int不能赋值nil

channel
channel · #2 · 8年之前

你的需求里,0 和 null 表示的意思不一样呗?

polaris
polaris · #3 · 8年之前

Age 的类型定义为 sql.NullInt64,这样可以通过 age.Valid 判断是否为有效值,具体的值就从 age.Int64 获取。文档 http://docs.studygolang.com/pkg/database/sql/#NullInt64

golang001
golang001 · #4 · 8年之前

如果这样,则例如Person就被sql这种数据库存储浸入了,而且前台数据绑定或计算,还要一个个判断太不方便了吧?有没有其他解决方案,一般你们怎么处理的

polaris
polaris · #5 · 8年之前

没遇到你这样的需求。

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传