今回はgolangで「invalid argument ~」というエラーが出たときの原因と解決策について紹介していきます。
目次
golangで「invalid argument ~」というエラーが出た
golangで開発を行っていると「invalid argument ~」というエラーに遭遇します。
invalid argument を直訳すると引数が無効。つまり関数へ引数を渡すタイミングで何かエラーが起きているということがわかります。
「invalid argument ~」の原因
「invalid argument ~」は関数とその引数によって発生するケースは様々あります。
例えば以下のコードではcap()関数にmapの変数aを渡しています。
func main() {
a := make(map[string]int,10)
cap(a)
fmt.Println(a)
}
このコードを実行すると以下のエラーが返却されます。
main.go:4:9: invalid argument: a (variable of type map[string]int) for cap
引数として渡している変数aが無効になっています。
この原因はmapに対してcap()関数を使っていることです。cap()関数はスライスで使うことはできますが、mapの場合は初期化のタイミングで容量を指定します。
「invalid argument ~」の対処法
今回のこのエラーを解消するには、初期化のタイミングで容量を指定する必要があります。
func main() {
a := make(map[string]int, 10)
fmt.Println(a)
}
このコードの実行結果はmap[]となります。
golangをもっと詳しくなりたい方に
golang学習のために筆者が実際に受講したUdemy教材をまとめています。
golang学習のために筆者が実際に読んでおすすめしたい本をまとめています。
【入門】golangの学習におすすめの本/書籍7選
これから業務でgolangを使うことになった方、これからgolangを使ってキャリアを歩んでいきたいという方でどのように学習していこうか悩んでいる方もいるかと思います。 ...