我有一個名為的結構體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 回答
- 0 關注
- 235 瀏覽
添加回答
舉報
0/150
提交
取消