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 サイトの他の関連記事を参照してください。