访问 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中文网其他相关文章!