本文へスキップ
BecomeCoder

Goのエラー · エラー12

interface conversion panic ― 型アサーション失敗(実行時 panic)

interface{}any)を具体的な型へ変換する型アサーション x.(T) で、実際の中身と違う型を指定すると panic します。

出るコード

func main() {
    var x interface{} = "hello"
    n := x.(int)   // 実際は string
    fmt.Println(n)
}

エラーメッセージ

panic: interface conversion: interface {} is string, not int

直し方

n, ok := x.(int) の2値形式を使い、okfalse のときは panic せずに分岐処理します。