Top / マニュアル / 関数 / EVAL
  トップページへ   [ 一覧 | 単語検索 | 最終更新 ]   [ 差分 | バックアップ ]

#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(マニュアル/関数)