エラーの対処方法

【Golang】Go言語のsyntax error: unexpectedエラーの5つの発生原因と対処方法

Go言語における"syntax error: unexpected [トークン], expecting [トークン]"エラーについて

Go言語では、構文エラーが発生した場合、エラーメッセージとして"syntax error: unexpected [トークン], expecting [トークン]"が出力されます。
ここでの[トークン]は、コード内の要素(キーワード、変数名、オペレータなど)を指します。
このエラーメッセージは、コンパイラが予期しないトークンを見つけたとき、または特定のトークンを期待していたが見つからなかったときに表示されます。
このエラーが発生する主な理由とその対処法を5つ紹介します。

他のエラーはコチラ

【Golang】Go言語でよく発生するエラー一覧8選

Go言語の一般的なエラーとその対処法 これから解説するエラー undefined: [変数名] syntax error: unexpected [トークン], expecting [トークン] re ...

続きを見る

1. セミコロンが不足している場合

プログラミング言語によっては、命令文の最後にセミコロン(;)をつけることが必須であり、忘れると "syntax error: unexpected [トークン], expecting ';' "というエラーが発生します。
Go言語でもこのルールは同じで、セミコロンの不足はよくあるエラーの一つです。
では、具体的なソースコードを見てみましょう。

サルモリ
ここで、セミコロン忘れのエラーを起こすコードを見てみよう!

 出力結果
syntax error: unexpected newline, expecting semicolon or newline 

上記のコードでは、fmt.Println("Hello, World!")の行の末尾にセミコロンがありません。
そのため、コンパイラは次の行を読み込む時に予期しない改行を見つけ、エラーが発生します。

サルモリ
じゃあ、どう修正すればいいかな?

エラーを修正するには、単に命令文の最後にセミコロンを追加すればよいです。
修正後のコードは以下の通りです。

 出力結果
Hello, World! 
サルモリ
ああ、セミコロンをつければエラーがなくなるんだね!

ポイント

命令文の最後にはセミコロンを忘れずに!

2. 変数の宣言が不適切な場合

変数を宣言する時、適切な形式に従わなければ "syntax error: unexpected [トークン], expecting [トークン]" というエラーが発生します。
Go言語では、変数の宣言には "var" キーワードを使用しますが、これを忘れてしまうとエラーが発生します。
では、具体的なソースコードを見てみましょう。

サルモリ
次に、変数宣言でミスってエラーを出すコードを見てみよう!

 出力結果
syntax error: unexpected string literal, expecting semicolon or newline or } 

上記のコードでは、変数messageの宣言に "var" キーワードが不足しています。
そのため、コンパイラは予期しない文字列リテラルを見つけ、エラーが発生します。

サルモリ
じゃあ、どう修正すればいいかな?

エラーを修正するには、変数宣言に "var" キーワードを追加すればよいです。
修正後のコードは以下の通りです。

 出力結果
Hello, World! 
サルモリ
なるほど、変数を宣言する時は "var" をつけなきゃダメなんだね!

ポイント

変数を宣言する時には "var" キーワードを忘れずに!

3. 関数定義が不適切な場合

関数を定義する時も、適切な形式に従わなければ "syntax error: unexpected [トークン], expecting [トークン]" というエラーが発生します。
Go言語では、関数の定義には "func" キーワードを使用しますが、これを忘れてしまうとエラーが発生します。
では、具体的なソースコードを見てみましょう。

サルモリ
さらに、関数定義でエラーを出すコードを見てみよう!

 出力結果
syntax error: unexpected (, expecting func name or ( 

上記のコードでは、関数mainの定義に "func" キーワードが不足しています。
そのため、コンパイラは予期しないトークン '(' を見つけ、エラーが発生します。

サルモリ
じゃあ、どう修正すればいいの?

エラーを修正するには、関数定義に "func" キーワードを追加すればよいです。
修正後のコードは以下の通りです。

 出力結果
Hello, World! 
サルモリ
なるほど、関数を定義する時は "func" をつけなきゃダメなんだね!

ポイント

関数を定義する時には "func" キーワードを忘れずに!

4. 括弧の閉じ忘れ

Go言語では、括弧 "(" と ")" を使って関数呼び出しや条件式などを囲むことがあります。
しかし、これらの括弧を閉じ忘れると "syntax error: unexpected [トークン], expecting [トークン]" というエラーが発生します。
では、具体的なソースコードを見てみましょう。

サルモリ
さて、括弧の閉じ忘れでエラーを出すコードを見てみよう!

 出力結果
syntax error: unexpected newline, expecting ) or } 

上記のコードでは、Println関数の閉じ括弧 ")" が不足しています。
そのため、コンパイラは予期しない改行を見つけ、エラーが発生します。

サルモリ
じゃあ、どう修正すればいいの?

エラーを修正するには、Println関数の閉弧 ")" を追加すればよいです。
修正後のコードは以下の通りです。

 出力結果
Hello, World! 
サルモリ
なるほど、括弧を閉じるのを忘れちゃダメなんだね!

ポイント

括弧の対応を忘れずに! 開いた括弧は必ず閉じましょう!

5. 不完全な演算子

Go言語では、2つの値を比較したり計算したりするための演算子があります。
しかし、これらの演算子を正しく記述しないと "syntax error: unexpected [トークン], expecting [トークン]" というエラーが発生します。
では、具体的なソースコードを見てみましょう。

サルモリ
最後に、不完全な演算子でエラーを出すコードを見てみよう!

 出力結果
syntax error: unexpected =, expecting expression 

上記のコードでは、"=" 演算子の後に何も書かれていないため、エラーが発生します。
このエラーは、演算子が不完全であることを示しています。

サルモリ
じゃあ、どう修正すればいいの?

エラーを修正するには、"=" 演算子の後に比較する値を追加すればよいです。
修正後のコードは以下の通りです。

 出力結果
true 
サルモリ
なるほど、演算子の後には必ず値が必要なんだね!

ポイント

演算子の後には必ず値を記述しましょう! これを忘れるとエラーが発生します!

まとめ

以上、Go言語でよく遭遇する "syntax error: unexpected [トークン], expecting [トークン]" エラーの例をいくつか紹介しました。
ソースコードを書く上で、このようなエラーに遭遇することはよくあります。
しかし、エラーメッセージをしっかりと読み解き、問題が何であるかを理解することで、問題を解決することができます。
また、これらのエラーは基本的なプログラミングのルールを守ることで避けることができます。
ルールを理解し、正しくコードを書くことが重要です。

最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!

サルモリ
最後まで読んでくれてありがとう!!

他のエラーはコチラ

【Golang】Go言語でよく発生するエラー一覧8選

Go言語の一般的なエラーとその対処法 これから解説するエラー undefined: [変数名] syntax error: unexpected [トークン], expecting [トークン] re ...

続きを見る

-エラーの対処方法

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock