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