我有一个名为的结构体Article,它有一个名为Image. 默认情况下Image有 value nil。由于Image应该只保留Image.Id到数据库,我使用bson.BSONGetter,bson.BSONSetter和json.Marshaler接口来伪造这种行为。但是在内部,如果我使用其他帮助程序将文件加载到此文件上,则可以将其Image用作io.ReadWriteCloser。package mainimport ( "io" "fmt" "gopkg.in/mgo.v2")type Article struct { Name string Image *Image}type Image struct { Id interface{} io.ReadWriteCloser}func (i *Image) SetBSON(r bson.Raw) error { i = &Image{} return r.Marshal(i.Id)}func (i *Image) GetBSON() (interface{}, error) { return i.Id}func (i *Image) MarshalJSON() ([]byte, error) { return json.Marshal(i.Id)}这种方法现在的问题是,它是不可能的初始化Image中Image.SetBSON为Image是nil。
2 回答
- 2 回答
- 0 关注
- 212 浏览
添加回答
举报
0/150
提交
取消