为了账号安全,请及时绑定邮箱和手机立即绑定

golang struct 优化

golang struct 优化

幕布斯7119047 2019-05-23 19:04:20
type(Salestruct{BaseModelWareroomIDint`json:"wareroom_id"`ProductIDint`json:"product_id"`Quantityint`json:"quantity"`}SaleLinkstruct{BaseModelWareroomIDint`json:"wareroom_id"`ProductIDint`json:"product_id"`Quantityint`json:"quantity"`ProductProduct`json:"product"`WareroomWareroom`json:"wareroom"`})有时候在返回接口的时候,有时候不希望返回关联表Product和Wareroom,有时候又需要,所以定义了2个struct,感觉这样写好啰嗦,想请大佬指导一下,该如何只优化这个struct,其他代码不用动呢?求大佬指导一下????
查看完整描述

2 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

embed,这很go
type(
Salestruct{
BaseModel
WareroomIDint`json:"wareroom_id"`
ProductIDint`json:"product_id"`
Quantityint`json:"quantity"`
}
SaleLinkstruct{
Sale
ProductProduct`json:"product"`
WareroomWareroom`json:"wareroom"`
}
)
序列化函数,最符合func的初衷
func(sl*SaleLink)LinkJson[]byte{
return把字段都加上,然后`Marshal`
}
func(sl*SaleLink)Json[]byte{
return部分字段,然后`Marshal`
}
表现类,这很设计模式
//通过sale构建下面这两个类,分别展现`json`
typeLinkSaleVOstruct{
}
typeSaleVOstruct{
}
                            
查看完整回答
反对 回复 2019-05-23
?
忽然笑

TA贡献1806条经验 获得超5个赞

typeSaleLinkstruct{
BaseModel
WareroomIDint`json:"wareroom_id"`
ProductIDint`json:"product_id"`
Quantityint`json:"quantity"`
ProductProduct`json:"product,omitempty"`
WareroomWareroom`json:"wareroom,omitempty"`
}
加上omitempty,如果你不给struct赋上这两个值,json序列化的时候,就不会有这两个字段
                            
查看完整回答
反对 回复 2019-05-23
  • 2 回答
  • 0 关注
  • 505 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信