Interface{} 値の Int への変換の型アサーション
interface{} 値の int への変換は、正しく実行されないとエラーが発生する可能性があります。この変換には型アサーションが必要です。
エラーの説明
エラー メッセージは、インターフェースの値を int に直接変換できないことを示しています。型アサーション。
コード検査
コード:
val, ok := m["area_id"] if !ok { utility.CreateErrorResponse(w, "Error: Area ID is missing from submitted data.") return } fmt.Fprintf(w, "Type = %v", val) // <--- Type = float64 iAreaId := int(val) // <--- Error on this line.
問題は次の行にあります:
iAreaId := int(val)
解決策
値を直接変換する代わりに、次のことを行う必要があります。型アサーションを使用します。値を int に変換できるかどうかをチェックし、変換できない場合はエラーをスローします。これを行うには 2 つの方法があります。
// Panicking version iAreaId := val.(int) // Non-panicking version iAreaId, ok := val.(int) if !ok { // Handle the error case here }
この変更を行うことで、interface{} 値を int に正常に変換し、コードの実行を続行できます。
以上がGo でインターフェイス値を int に安全に変換するにはどうすればよいですか?{}の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。