map[string]interface タイプのネストされたマップから値を取得する{}
Go では、マップは次のことを可能にする強力なデータ構造です。柔軟なキーと値のストレージ。ネストされたマップを操作する場合、より深いレベルから値を取得することが困難になる場合があります。この質問では、map[string]interface{} 型のネストされたマップから値を抽出することを目的とする一般的なシナリオについて説明します。
提供されたコード サンプルは、さまざまなキーと値のペアを含むネストされたマップ構造を示しています。目標は、ネストされたマップ、特に他のフィールドから値を取得することです。これを実現する方法は次のとおりです。
ネストされたマップの値にアクセスして操作するには、ノンパニック キャストを使用する必要があります。非パニック キャストでは、キャストを試行する前に値の基になる型をチェックします。非パニック キャストの構文は
ソリューションでは、トップレベル マップ (m) を反復処理し、各キーに関連付けられた値のタイプは、map[string]interface{} です。型チェックが成功した場合 (ok が true であることによって示されます)、ネストされたマップが正常に識別されたことになります。
ネストされたマップがあることがわかったら、元の値を目的の値にキャストすることでその値にアクセスできます。タイプ。たとえば、ネストされた Google マップ内の値キーの値にアクセスするには、次のように記述します。
valueMap := nestedMap["google"].(map[string]interface{}) value := valueMap["value"].(string)
これらの手順に従うことで、map[string]interface タイプのネストされたマップから効果的に値を取得できます。 Go の {}。型アサーションの詳細については、ドキュメントを参照してください: https://golang.org/ref/spec#Type_assertions
以上がGo でネストされた `map[string]interface{}` マップから値を安全に取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。