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

在方法中初始化一个 nil 指针结构

在方法中初始化一个 nil 指针结构

Go
郎朗坤 2021-08-10 20:55:27
我有一个名为的结构体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
提交
取消
意见反馈 帮助中心 APP下载
官方微信