EVAL†
EVAL( string )
- 与えられた文字列を単一のYAYAスクリプト(式)として実行します。
- 単一の、という点に注意してください。マルチステートメントは渡せません。
- したがって、現状ではEVALは数式の展開や関数名の実行時合成などしかできません。
- if、forなどの制御構造を含むスクリプトを実行したり、新たに関数を定義したりするパフォーマンスは持っていません。
- 以上は APPEND_RUNTIME_DIC で可能になりましたが、EVALのほうが高速です。
- string
- YAYAスクリプトとして実行したい文字列。
返り値†
- 成功した場合、式の結果
- 失敗した場合、何も返しません(VOID)
バージョン†
- YAYA:初期から利用可能
- AYA5.8で利用可能
【TODO】EVALの強力な使い方についてTIPSからくやしく
たとえば以下のコードは変数iに1を代入します。
EVAL("i=1")
文にはエスケープシーケンスが存在しません。ダブルクォートを文字列に内包する場合はCHR(34)を使用してください。たとえば変数iに"test"を代入するには以下のように記述します。
EVAL("i=%(CHR(34))test%(CHR(34))")
%の展開を実行時に行いたい場合も、%をCHR(37)としてください。以下の例は "%(foo)" を実行します。
EVAL("%(CHR(34))%(CHR(37))(foo)%(CHR(34))")
EVAL結果を文字列に変換する TOSTR(EVAL("formula") と埋め込み展開 "%(formula)" は同じ結果をもたらします。