トップページへ   [ 一覧 | 検索 | 最終更新 ]   [ 差分 | 履歴 | 凍結 ]

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)" は同じ結果をもたらします。