我有一對夫婦的結構,如:初始化結構動態
type SomeObject struct {
sample int
}
我想根據我的請求身體得到填補sample
變量。爲此,我想創建一個函數,將請求主體作爲字符串傳遞給它,在裏面創建一個空的結構,用數據填充結構,返回它,並用這個替換選定的結構。
我該怎麼做?我從函數返回什麼?有沒有辦法做到這一點?
我有一對夫婦的結構,如:初始化結構動態
type SomeObject struct {
sample int
}
我想根據我的請求身體得到填補sample
變量。爲此,我想創建一個函數,將請求主體作爲字符串傳遞給它,在裏面創建一個空的結構,用數據填充結構,返回它,並用這個替換選定的結構。
我該怎麼做?我從函數返回什麼?有沒有辦法做到這一點?
如果你使用多種類型的處理,那麼你應該讓你的方法返回一個interface{}
。對於所有適用的類型,創建一個方便的方法,如;
func NewSomeObject(reqBody string) *SomeObject {
return &SomeObject{sample:reqBody}
}
這需要一個字符串,並返回與該字段設置爲任何被傳入的類型的新實例,你的問題是缺少有關如何確定哪些類型應該被實例化信息,但假設你有幾個,你可能需要在接收請求體的方法中使用if/else或switch,以給出一個非常模糊的例子,它會是這樣的;
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
}
是的,併爲獲取請求正文,傳入參數一個字符串的請求FormValue或請求的指針 – Fantasim