0x051 IDENTIFIER_NOT_FOUND

identifierは現在のコンテキストに存在しません。


taiseiue | 2024-11-21

概要

現在のクラスやスコープ、名前空間内に存在しない名前の変数や関数などにアクセスしようとしました。名前のスペルを確認して、ライブラリやファイルが正しく読み込まれていることを確認して、使用しようとしている名前が使用できることを確認してください。

確認すべきこと

  • identifierのスペルが正しいか確認してください
  • 名前空間への参照が行われているか確認してください(usingを忘れていませんか)
  • ライブラリやファイルが読み込まれているか確認してください(importincludeを忘れていませんか)

よくあるケース

この例外は、以下のような状況でよく発生します。

ケース1 定義されていない関数や変数を呼び出そうとした

この例外は、定義されていない関数や変数を呼び出そうとした場合に発生します。次の例を参照してください。

AliceScript
string str = "text";
print(str2);//str2は定義されていないためエラー

ケース2 if文などの文中で定義し、外部で使用しようとした

この例外は、if文などの文中で定義し、外部で使用しようとした場合にもよく発生します。次の例を参照してください。

AliceScript
if(condition)
{
    string str ="text";
}
print(str);//スコープ外のためエラー

ケース3 定義されていない変数に値を代入しようとした

この例外は、定義されていない変数に値を代入しようとした場合にも発生します。 次の例を参照してください。

AliceScript
s = "text";//sが定義されていないためエラー

ケース4 usingディレクティブを忘れている

この例外は、使用したい関数や変数がある名前空間への参照が行われていない場合に発生します。

AliceScript
string str = file_read_text("text.txt");
// Alice.IOが参照されていないためエラー

このようなとき、以下のようにコードの先頭にusing宣言を追加します。

AliceScript
using Alice.IO;

string str = file_read_text("text.txt");

ケース5 importやincludeを忘れている

この例外は、使用したい関数や変数があるライブラリを正しく読み込めていない場合に発生します。

importincludeを忘れていないか確認してください。正しく読み込めていると思われる場合は、他にエラーが発生していないか確認してください。