存取Go 中的介面欄位
在Go 中使用介面時,重要的是要了解您無法透過以下方式直接存取底層類型的欄位:一個介面。介面變數可以儲存符合介面的任何值,但它不提供對值欄位的直接存取。
在提供的程式碼片段中,SearchItemsByUser 函數傳回一個 interface{} 值。要存取資料字段,例如 Params,您需要使用類型斷言來存取介面背後的特定結構類型。
為此,您可以修改程式碼如下:
package search type results struct { Hits hits NbHits int NbPages int HitsPerPage int ProcessingTimeMS int Query string Params string } func SearchItemsByUser(r *http.Request) results { var Result results er := json.Unmarshal(body, &Result) if er != nil { fmt.Println("error:", er) } return Result }
現在可以直接使用回傳值了:
func test(w http.ResponseWriter, r *http.Request) { result := search.SearchItemsByUser(r) fmt.Fprintf(w, "%s", result.Params) }
以上是Go中如何透過介面存取結構體欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!