Go でインターフェイス フィールドにアクセスする
Go でインターフェイスを操作する場合、基になる型のフィールドに直接アクセスできないことを理解することが重要です。インターフェース。インターフェイス変数には、インターフェイスに準拠する任意の値を格納できますが、値のフィールドへの直接アクセスは提供されません。
提供されたコード スニペットでは、SearchItemsByUser 関数はインターフェイス値を返します。{} 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 中国語 Web サイトの他の関連記事を参照してください。