Go 动态初始化结构

Go 动态初始化结构,go,struct,Go,Struct,我有几个结构,比如: type SomeObject struct { sample int } 我想根据我在请求正文中得到的内容填充示例变量。为此,我想创建一个函数,将请求主体作为字符串传递给它,在内部创建一个空结构,用数据填充该结构,返回它,并用它替换所选的结构 我该怎么做?从函数返回什么?有办法吗?怎么样 func foo (s *SomeObject) { s.sample = 123 } 或 怎么样 func foo (s *SomeObject) { s.s

我有几个结构,比如:

type SomeObject struct {
   sample int
}
我想根据我在请求正文中得到的内容填充
示例
变量。为此,我想创建一个函数,将请求主体作为字符串传递给它,在内部创建一个空结构,用数据填充该结构,返回它,并用它替换所选的结构

我该怎么做?从函数返回什么?有办法吗?

怎么样

func foo (s *SomeObject) {
    s.sample = 123
}

怎么样

func foo (s *SomeObject) {
    s.sample = 123
}


如果您正在处理多个类型,那么您应该使您的方法返回一个
接口{}
。对于所有适用的类型,创建一个方便的方法,如

func NewSomeObject(reqBody string) *SomeObject {
     return &SomeObject{sample:reqBody}
}
它接受一个字符串并返回该类型的一个新实例,该字段设置为传入的内容。您的问题缺少关于如何确定应该实例化哪种类型的信息,但假设您有一些类型,您可能需要在接收请求主体的方法中使用if/else或开关,以便给出一个非常模糊的示例,类似于

func ProcessRequest(reqBody string) interface{} {
      if someCondition {
           return NewSomeObject(reqBody)
      } else if otherCondition {
           return NewSomeOtherObject(reqBody)
      } // potentially several other statements like this
      return nil // catch all, if no conditions match
}

如果您正在处理多个类型,那么您应该使您的方法返回一个
接口{}
。对于所有适用的类型,创建一个方便的方法,如

func NewSomeObject(reqBody string) *SomeObject {
     return &SomeObject{sample:reqBody}
}
它接受一个字符串并返回该类型的一个新实例,该字段设置为传入的内容。您的问题缺少关于如何确定应该实例化哪种类型的信息,但假设您有一些类型,您可能需要在接收请求主体的方法中使用if/else或开关,以便给出一个非常模糊的示例,类似于

func ProcessRequest(reqBody string) interface{} {
      if someCondition {
           return NewSomeObject(reqBody)
      } else if otherCondition {
           return NewSomeOtherObject(reqBody)
      } // potentially several other statements like this
      return nil // catch all, if no conditions match
}

是,对于get request body,传入参数request FormValue的字符串或requestYes上的指针;对于get request body,传入参数request FormValue的字符串或request上的指针