ように私は、構造体のカップルを持っている:私はリクエストボディに得るものに基づいてsample
変数を埋めるためにしたい初期構造を動的
type SomeObject struct {
sample int
}
。これを行うには、関数を作成し、要求本体を文字列として渡し、内部に空の構造を作成し、構造をデータで埋めて返し、選択した構造をこれに置き換えたいとします。
どうすればよいですか?関数から何を返すのですか?これを行う方法はありますか?
ように私は、構造体のカップルを持っている:私はリクエストボディに得るものに基づいてsample
変数を埋めるためにしたい初期構造を動的
type SomeObject struct {
sample int
}
。これを行うには、関数を作成し、要求本体を文字列として渡し、内部に空の構造を作成し、構造をデータで埋めて返し、選択した構造をこれに置き換えたいとします。
どうすればよいですか?関数から何を返すのですか?これを行う方法はありますか?
あなたは複数の種類を扱っているなら、あなたはあなたの方法がinterface{}
を返すようにする必要があります。すべての適用可能な型に対して、次のような便利なメソッドを作成します。
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 foo (s *SomeObject) {
s.sample = 123
}
または
func (s *SomeObject) foo() {
s.sample = 123
}
はい、get request bodyには、リクエストFormValueまたはリクエスト時のポインタのパラメータを渡します。 – Fantasim