Code Fix

Goエラー 練習問題 170問(全問無料)

コンパイルエラー・実行時エラー・ロジックの誤りを、空欄補充で直す練習問題です。登録不要でその場で解けます。

エラーメッセージで探す

今出ているエラーメッセージをそのまま貼り付けてください。行番号や変数名が違っていても、エラーの種類が一致すれば見つかります。

エラー難易度種別
declared and not used: の原因と直し方 #1 初級コンパイル
declared and not used: の原因と直し方 #2 初級コンパイル
declared and not used: の原因と直し方 #3 初級コンパイル
declared and not used: の原因と直し方 #4 初級コンパイル
declared and not used: の原因と直し方 #5 初級コンパイル
imported and not used の原因と直し方 #1 初級コンパイル
imported and not used の原因と直し方 #2 初級コンパイル
imported and not used の原因と直し方 #3 初級コンパイル
imported and not used の原因と直し方 #4 初級コンパイル
imported and not used の原因と直し方 #5 初級コンパイル
undefined: の原因と直し方 #1 初級コンパイル
undefined: の原因と直し方 #2 初級コンパイル
undefined: の原因と直し方 #3 初級コンパイル
undefined: の原因と直し方 #4 初級コンパイル
undefined: の原因と直し方 #5 初級コンパイル
missing return at end of function の原因と直し方 #1 初級コンパイル
missing return at end of function の原因と直し方 #2 初級コンパイル
missing return at end of function の原因と直し方 #3 初級コンパイル
missing return at end of function の原因と直し方 #4 初級コンパイル
missing return at end of function の原因と直し方 #5 初級コンパイル
cannot use ... as ... value(型の不一致)の原因と直し方 #1 初級コンパイル
cannot use ... as ... value(型の不一致)の原因と直し方 #2 初級コンパイル
cannot use ... as ... value(型の不一致)の原因と直し方 #3 初級コンパイル
cannot use ... as ... value(型の不一致)の原因と直し方 #4 初級コンパイル
cannot use ... as ... value(型の不一致)の原因と直し方 #5 初級コンパイル
non-boolean condition in if statement の原因と直し方 #1 初級コンパイル
non-boolean condition in if statement の原因と直し方 #2 初級コンパイル
non-boolean condition in if statement の原因と直し方 #3 初級コンパイル
non-boolean condition in if statement の原因と直し方 #4 初級コンパイル
non-boolean condition in if statement の原因と直し方 #5 初級コンパイル
no new variables on left side of := の原因と直し方 #1 初級コンパイル
no new variables on left side of := の原因と直し方 #2 初級コンパイル
no new variables on left side of := の原因と直し方 #3 初級コンパイル
no new variables on left side of := の原因と直し方 #4 初級コンパイル
no new variables on left side of := の原因と直し方 #5 初級コンパイル
index out of range パニックの原因と直し方 #1 初級実行時
index out of range パニックの原因と直し方 #2 初級実行時
index out of range パニックの原因と直し方 #3 初級実行時
index out of range パニックの原因と直し方 #4 初級実行時
index out of range パニックの原因と直し方 #5 初級実行時
invalid memory address or nil pointer dereference の原因と直し方 #1 初級実行時
invalid memory address or nil pointer dereference の原因と直し方 #2 初級実行時
invalid memory address or nil pointer dereference の原因と直し方 #3 初級実行時
invalid memory address or nil pointer dereference の原因と直し方 #4 初級実行時
invalid memory address or nil pointer dereference の原因と直し方 #5 初級実行時
integer divide by zero パニックの原因と直し方 #1 初級実行時
integer divide by zero パニックの原因と直し方 #2 初級実行時
integer divide by zero パニックの原因と直し方 #3 初級実行時
integer divide by zero パニックの原因と直し方 #4 初級実行時
integer divide by zero パニックの原因と直し方 #5 初級実行時
assignment to entry in nil map の原因と直し方 #1 初級実行時
assignment to entry in nil map の原因と直し方 #2 初級実行時
assignment to entry in nil map の原因と直し方 #3 初級実行時
assignment to entry in nil map の原因と直し方 #4 初級実行時
assignment to entry in nil map の原因と直し方 #5 初級実行時
slice bounds out of range の原因と直し方 #1 初級実行時
slice bounds out of range の原因と直し方 #2 初級実行時
slice bounds out of range の原因と直し方 #3 初級実行時
slice bounds out of range の原因と直し方 #4 初級実行時
slice bounds out of range の原因と直し方 #5 初級実行時
assignment mismatch: 1 variable but ... returns 2 values の原因と直し方 #1 初級コンパイル
assignment mismatch: 1 variable but ... returns 2 values の原因と直し方 #2 初級コンパイル
assignment mismatch: 1 variable but ... returns 2 values の原因と直し方 #3 初級コンパイル
assignment mismatch: 1 variable but ... returns 2 values の原因と直し方 #4 初級コンパイル
assignment mismatch: 1 variable but ... returns 2 values の原因と直し方 #5 初級コンパイル
invalid operation: mismatched types string and int の原因と直し方 #1 初級コンパイル
invalid operation: mismatched types string and int の原因と直し方 #2 初級コンパイル
invalid operation: mismatched types string and int の原因と直し方 #3 初級コンパイル
invalid operation: mismatched types string and int の原因と直し方 #4 初級コンパイル
invalid operation: mismatched types string and int の原因と直し方 #5 初級コンパイル
strconv.Atoiのerrを無視するとゼロ値のまま処理が進む #1 中級ロジック
strconv.Atoiのerrを無視するとゼロ値のまま処理が進む #2 中級ロジック
strconv.Atoiのerrを無視するとゼロ値のまま処理が進む #3 中級ロジック
strconv.Atoiのerrを無視するとゼロ値のまま処理が進む #4 中級ロジック
strconv.Atoiのerrを無視するとゼロ値のまま処理が進む #5 中級ロジック
appendの戻り値を再代入し忘れると要素が反映されない #1 中級ロジック
appendの戻り値を再代入し忘れると要素が反映されない #2 中級ロジック
appendの戻り値を再代入し忘れると要素が反映されない #3 中級ロジック
appendの戻り値を再代入し忘れると要素が反映されない #4 中級ロジック
appendの戻り値を再代入し忘れると要素が反映されない #5 中級ロジック
スライスが元の配列を共有していて予期せぬ書き換えが起きる #1 中級ロジック
スライスが元の配列を共有していて予期せぬ書き換えが起きる #2 中級ロジック
スライスが元の配列を共有していて予期せぬ書き換えが起きる #3 中級ロジック
スライスが元の配列を共有していて予期せぬ書き換えが起きる #4 中級ロジック
スライスが元の配列を共有していて予期せぬ書き換えが起きる #5 中級ロジック
クロージャがループ外の変数を共有キャプチャして最終値しか残らない #1 中級ロジック
クロージャがループ外の変数を共有キャプチャして最終値しか残らない #2 中級ロジック
クロージャがループ外の変数を共有キャプチャして最終値しか残らない #3 中級ロジック
クロージャがループ外の変数を共有キャプチャして最終値しか残らない #4 中級ロジック
クロージャがループ外の変数を共有キャプチャして最終値しか残らない #5 中級ロジック
all goroutines are asleep - deadlock! の原因と直し方 #1 中級実行時
all goroutines are asleep - deadlock! の原因と直し方 #2 中級実行時
all goroutines are asleep - deadlock! の原因と直し方 #3 中級実行時
all goroutines are asleep - deadlock! の原因と直し方 #4 中級実行時
all goroutines are asleep - deadlock! の原因と直し方 #5 中級実行時
send on closed channel パニックの原因と直し方 #1 中級実行時
send on closed channel パニックの原因と直し方 #2 中級実行時
send on closed channel パニックの原因と直し方 #3 中級実行時
send on closed channel パニックの原因と直し方 #4 中級実行時
send on closed channel パニックの原因と直し方 #5 中級実行時
close of closed channel パニックの原因と直し方 #1 中級実行時
close of closed channel パニックの原因と直し方 #2 中級実行時
close of closed channel パニックの原因と直し方 #3 中級実行時
close of closed channel パニックの原因と直し方 #4 中級実行時
close of closed channel パニックの原因と直し方 #5 中級実行時
型付きnilをinterfaceに入れると == nil が false になる #1 中級ロジック
型付きnilをinterfaceに入れると == nil が false になる #2 中級ロジック
型付きnilをinterfaceに入れると == nil が false になる #3 中級ロジック
型付きnilをinterfaceに入れると == nil が false になる #4 中級ロジック
型付きnilをinterfaceに入れると == nil が false になる #5 中級ロジック
interface conversion panic の原因と直し方 #1 中級実行時
interface conversion panic の原因と直し方 #2 中級実行時
interface conversion panic の原因と直し方 #3 中級実行時
interface conversion panic の原因と直し方 #4 中級実行時
interface conversion panic の原因と直し方 #5 中級実行時
sync: negative WaitGroup counter パニックの原因と直し方 #1 中級実行時
sync: negative WaitGroup counter パニックの原因と直し方 #2 中級実行時
sync: negative WaitGroup counter パニックの原因と直し方 #3 中級実行時
sync: negative WaitGroup counter パニックの原因と直し方 #4 中級実行時
sync: negative WaitGroup counter パニックの原因と直し方 #5 中級実行時
json.Unmarshalで非公開(小文字始まり)フィールドが無視される #1 中級ロジック
json.Unmarshalで非公開(小文字始まり)フィールドが無視される #2 中級ロジック
json.Unmarshalで非公開(小文字始まり)フィールドが無視される #3 中級ロジック
json.Unmarshalで非公開(小文字始まり)フィールドが無視される #4 中級ロジック
json.Unmarshalで非公開(小文字始まり)フィールドが無視される #5 中級ロジック
len(s)がUTF-8のバイト数を返し文字数と一致しない #1 中級ロジック
len(s)がUTF-8のバイト数を返し文字数と一致しない #2 中級ロジック
len(s)がUTF-8のバイト数を返し文字数と一致しない #3 中級ロジック
len(s)がUTF-8のバイト数を返し文字数と一致しない #4 中級ロジック
len(s)がUTF-8のバイト数を返し文字数と一致しない #5 中級ロジック
値レシーバのメソッドは呼び出し元の値を変更しない #1 上級ロジック
値レシーバのメソッドは呼び出し元の値を変更しない #2 上級ロジック
値レシーバのメソッドは呼び出し元の値を変更しない #3 上級ロジック
値レシーバのメソッドは呼び出し元の値を変更しない #4 上級ロジック
値レシーバのメソッドは呼び出し元の値を変更しない #5 上級ロジック
ポインタレシーバのメソッドしか無い型は値ではinterfaceを満たさない #1 上級コンパイル
ポインタレシーバのメソッドしか無い型は値ではinterfaceを満たさない #2 上級コンパイル
ポインタレシーバのメソッドしか無い型は値ではinterfaceを満たさない #3 上級コンパイル
ポインタレシーバのメソッドしか無い型は値ではinterfaceを満たさない #4 上級コンパイル
ポインタレシーバのメソッドしか無い型は値ではinterfaceを満たさない #5 上級コンパイル
スライスやマップを含む構造体は == で比較できない #1 上級コンパイル
スライスやマップを含む構造体は == で比較できない #2 上級コンパイル
スライスやマップを含む構造体は == で比較できない #3 上級コンパイル
スライスやマップを含む構造体は == で比較できない #4 上級コンパイル
スライスやマップを含む構造体は == で比較できない #5 上級コンパイル
recoverは同じgoroutine内のpanicしか捕まえない #1 上級実行時
recoverは同じgoroutine内のpanicしか捕まえない #2 上級実行時
recoverは同じgoroutine内のpanicしか捕まえない #3 上級実行時
recoverは同じgoroutine内のpanicしか捕まえない #4 上級実行時
recoverは同じgoroutine内のpanicしか捕まえない #5 上級実行時
埋め込み構造体のメソッドが外側の同名メソッドにシャドーイングされる #1 上級ロジック
埋め込み構造体のメソッドが外側の同名メソッドにシャドーイングされる #2 上級ロジック
埋め込み構造体のメソッドが外側の同名メソッドにシャドーイングされる #3 上級ロジック
埋め込み構造体のメソッドが外側の同名メソッドにシャドーイングされる #4 上級ロジック
埋め込み構造体のメソッドが外側の同名メソッドにシャドーイングされる #5 上級ロジック
does not satisfy(ジェネリクスの制約違反)の原因と直し方 #1 上級コンパイル
does not satisfy(ジェネリクスの制約違反)の原因と直し方 #2 上級コンパイル
does not satisfy(ジェネリクスの制約違反)の原因と直し方 #3 上級コンパイル
does not satisfy(ジェネリクスの制約違反)の原因と直し方 #4 上級コンパイル
does not satisfy(ジェネリクスの制約違反)の原因と直し方 #5 上級コンパイル
deferの引数はdefer文を実行した時点の値で評価される #1 上級ロジック
deferの引数はdefer文を実行した時点の値で評価される #2 上級ロジック
deferの引数はdefer文を実行した時点の値で評価される #3 上級ロジック
deferの引数はdefer文を実行した時点の値で評価される #4 上級ロジック
deferの引数はdefer文を実行した時点の値で評価される #5 上級ロジック
名前付き戻り値が内側のブロックで:=によりシャドーイングされる #1 上級ロジック
名前付き戻り値が内側のブロックで:=によりシャドーイングされる #2 上級ロジック
名前付き戻り値が内側のブロックで:=によりシャドーイングされる #3 上級ロジック
名前付き戻り値が内側のブロックで:=によりシャドーイングされる #4 上級ロジック
名前付き戻り値が内側のブロックで:=によりシャドーイングされる #5 上級ロジック
広告
広告スロット(未設定)

出題モード

まとめて解きたいときはこちら

このモードで始める

選んだモードは次の問題への移動にも適用されます。記録は端末内にのみ保存されます。

エラーの種類について

Goのエラーは大きく3種類に分かれます。コンパイルエラーは、goコマンドが構文・型のチェックの段階で検出するもので、実行が一切始まりません。未使用変数・未使用importや型の不一致が代表例です。実行時パニックは構文・型としては正しいものの、実行中に回復不能な状態になって強制終了するもので、スライスの範囲外アクセスやnilポインタの参照が代表例です。ロジックの誤りはどちらのエラーも出ませんが結果が期待と違うもので、appendの戻り値の代入忘れなどが典型です。

Goの大きな特徴は、未使用の変数やimportをコンパイルエラーとして扱う厳格さと、複数の戻り値・エラーを値として明示的に扱う設計です。このサイトの問題には、エラーを握りつぶした結果ゼロ値のまま処理が進んでしまうような、Go特有の落とし穴も多く含まれています。

初級から順に解く

広告
広告スロット(未設定)