Go: interface conversion: interface {} is T, not U
Goの型アサーションエラーの解決方法
概要
interface{}から具体的な型への型アサーションが失敗した場合に発生するパニックです。
エラーメッセージ
panic: interface conversion: interface {} is string, not int
原因
- 型の不一致: アサートした型と実際の型が異なる
- JSONの型: encoding/jsonがfloat64を使用
- 動的な型: 実行時まで型が不明
解決策
1. コンマOKイディオム
| |
2. 型スイッチ
| |
3. JSONの数値処理
| |
よくある間違い
- JSONの数値がfloat64になることを忘れる
- コンマOKイディオムを使わない
Go の他のエラー
この記事は役に立ちましたか?