今回はgolangで「panic: runtime error: index out of range」というエラーが出たときの原因と解決策について紹介していきます。
目次
golangで「panic: runtime error: index out of range」というエラーが出た
golangで開発を行っていると「panic: runtime error: index out of range」というエラーに遭遇します。
「panic: runtime error: index out of range」はスライスや配列を扱っているときに発生するエラーでもあります。
「panic: runtime error: index out of range」の原因
このエラーが発生する原因は配列やスライスの存在しない要素にアクセスしようしているためです。
func main() {
a := []int{1, 2, 3, 4, 5}
fmt.Println(a[8])
}
例えば上記のスライスは5つしかスライスに要素がありませんが、8番目のインデックスを参照しようとしています。
このコードをそのまま実行すると以下のエラーが発生します。
panic: runtime error: index out of range [8] with length 5
長さ5のスライスに8番前のインデックスを指定してアクセスしようとしてエラーになっていることがわかります。
「panic: runtime error: index out of rangeの対処法
このエラーを解消するためには存在する有効インデックスを指定しましょう。
func main() {
a := []int{1, 2, 3, 4, 5}
fmt.Println(a[3])
}
取得するスライスのインデックスを3に変更して実行すると、結果は4が出力されます。
スライスや配列のインデックスは0から始まるので、今回のスライスのインデックスと値は以下の関係になります。
インデックス:値
0:1
1:2
2:3
3:4
4:5
golangをもっと詳しくなりたい方に
golang学習のために筆者が実際に受講したUdemy教材をまとめています。
golang学習のために筆者が実際に読んでおすすめしたい本をまとめています。
【入門】golangの学習におすすめの本/書籍7選
これから業務でgolangを使うことになった方、これからgolangを使ってキャリアを歩んでいきたいという方でどのように学習していこうか悩んでいる方もいるかと思います。 ...