ホームページ >バックエンド開発 >Golang >Golang の「インターフェース{}」内で匿名の構造体値にアクセスするにはどうすればよいですか?

Golang の「インターフェース{}」内で匿名の構造体値にアクセスするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-04 04:17:29358ブラウズ

How to Access Anonymous Struct Values Within an `interface{}` in Golang?

Golang 型インターフェイスの匿名構造体値へのアクセス {}

NewJob 関数に渡した匿名構造体へのアクセスで問題が発生しています。カスタム関数内から。発生しているエラー「インターフェイス {} はメソッドのないインターフェイスです」は、使用しているインターフェイス タイプにメソッドが定義されていないため、フィールドに直接アクセスできないことを示しています。

Toこれを解決するには、interface 値を、データが属する匿名構造体などの互換性のある型に型アサートする必要があります。{}そうすることで、希望するフィールドにアクセスできるようになります。調整されたコードは次のとおりです。

<code class="go">func Custom(name string) interface{} {
    for i := range jobs {
        if jobs[i].name != name {
            continue
        }
        return jobs[i].custom
    }
    return nil
}

...

id := t.(struct{Id int}).Id</code>

上記のコードでは、Id という名前のフィールドを持つ構造体にassert t を入力します。これにより、Id フィールドに直接アクセスできるようになり、予想される結果 1.

が返されるようになりました。

以上がGolang の「インターフェース{}」内で匿名の構造体値にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。