JSON からデータを取得して整数にキャストしようとすると、変換できないことを示すエラーが発生する場合がありますint へのインターフェース{}。このエラーは、Go の型アサーション ルールが原因で発生します。
コードには、次の行があります。
iAreaId := int(val)
この行は、型インターフェイス{ を持つ val を変換しようとします。 }、型キャストを使用して int に変換します。ただし、インターフェイスを int に型キャストすることは許可されていません。
この問題を解決するには、代わりに型アサーションを使用する必要があります。
iAreaId := val.(int)
型アサーションは基になる要素を抽出します。宣言されたタイプがある場合は、インターフェースからの値。{}値に宣言された型がない場合、型アサーションはパニックになります。
または、2 番目の戻り値を使用して、パニックしないバージョンの型アサーションを使用することもできます:
iAreaId, ok := val.(int)
ok 変数は、型アサーションが成功した場合は true、失敗した場合は false になります。
型アサーションを正しく使用すると、正常に変換できます。 Go の int へのインターフェース。
以上がGo でインターフェイスを安全に int に変換するにはどうすればよいですか?{}の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。