コンパイル エラーについて

コンパイル エラーを理解する

> LeekScript チュートリアル

あなたはAIを祝福されたようにコーディングします。行がスクロールし、「sfatyu_2」などの非常に論理的な変数と関数の名前が次々と続きます。人生は良いです... 突然 ! 「保存」キーが押され、コードがコンパイラによってチェックされます。視線を強力にサポート… そしてドラマはこちら!エディタの下部に 1 つ (またはそれ以上!) の大きな赤い線が表示されます。これらの奇妙で難解な魔法の公式は何を意味するのでしょうか?

このガイドは、あなたも真実を知ることができるように、あなたに真実を明らかにします。

ステートメントの終わりがここで期待されていました

命令の終わり? はい、各行末の「;」です。このメッセージは、これらの文字のいずれかが欠落している行を示しています。 でも気をつけて!示されている行は、一般に、非難された行の前後の行です。

!欠落;

ここでは、18 行目の末尾に「;」がありません。メッセージは、useWeapon の前の行にセミコロンがないことを示しています。

修正: moveToward(enemy);

### 予期しないファイルの末尾 もっと陰湿に!前のエラーと同じですが、今回は AI の最後の行でセミコロンがありません。 !unexp EoF

修正: useWeapon(enemy);

これは、閉じられていない String が原因である可能性もあります。 !EoF 2

修正: say("勝った!");

不明な変数または関数

変数を宣言するのを忘れたのは誰ですか? Variables のチュートリアルと Functions のチュートリアルに少し戻ると役に立つかもしれません。

!var または func 不明

ここでは、「enemy」変数は宣言されていません。最初に var キーワードで作成する必要があります。 修正: var enemy = getNearestEnemy();

そして、これのために? !元不明機能

作者はキーボードを持ったただの猿で、すぐ上で宣言された getNearest の代わりに getNearest (存在しない) を使っていることに気が付きませんでした。

この変数名は使用できません

すでに宣言されている変数と同じ名前の変数を再宣言することはできません。

![](https://imgur.com/Qx5n006.png)

訂正(醜い): var moi2 = 1 より良い修正は、変数の役割に本当に一致する名前を使用することです。

警告: このエラーは、グローバル変数の名前が原因で発生することもあります。

尊敬されるセミコロンの代わりにコンマを使用すると、このエラーも発生します。 ![](https://imgur.com/cCpqtxS.png)

修正: var enemy = getNearestEnemy();

これは、インライン変数宣言によるものです。 var variable1 = 1, variable2 = 2; は完全に有効な構文です (変数 を参照)。

この関数名は使用できません

前のエラーと同様に、既に使用されている関数名を再利用することはできません。

![](https://imgur.com/UUfrixR.png)

訂正 (非常に醜い): function getNearest2() {

このパラメータ名は使用できません

つまり、グローバル変数の名前をパラメーター名として使用しようとしているのですね。私のあまり友好的でない同僚の 1 人と落ち込んだ場合、どのような代償を払うか知っていますか?

![](https://imgur.com/xnAOUAV.png)

修正 :

閉じ括弧が必要です

エラー メッセージが示すように、示された行に括弧がありません。 !間違った場合

ここでコードの 19 行目は if (not isAlive(enemy)) { である必要があります。

ここに値が期待されていました

関数呼び出しが閉じられていませんか??これがあなたが得るものです! !期待値

「moveToward(enemy);」を修正

パラメータの数が正しくありません

パラメーター?ケザコ? Functions チュートリアルの簡単な復習です。

!nb 不正なパラメータ

ここで、moveToward 関数は 1 ~ 2 個のパラメーターを受け入れ、0 を指定します。 「moveToward(enemy);」または「moveToward(enemy, mp);」の mp を数字で修正します。

関数に 多すぎる パラメータを指定すると、同じエラーが発生することに注意してください (: moveToward(enemy, mp, thing);)。

すべてのブロックが閉じられたわけではありません

ブロックとは? それは { } で囲まれたコードのセクションです。ここでは、ブロックを閉じずに { でブロックを開きました。 !閉じていないブロック

ここでは if の後に } がありません。したがって、コンパイラは現在のブロックの終わり (ここではファイルの終わり) を示して、すべてのブロックを閉じるのを忘れたことを示します。 修正 :

閉じるブロックはありません

この状況は前の状況の逆です。ブロック av を閉じました