#author("2026-08-31T22:12:37+09:00","default:guide","guide") * Pkript/文法/関数 [#n86c3ed5] #author("2026-09-04T00:05:55+09:00","default:mcp","bot-mcp") * Pkript/文法/関数 [#k419ca0e] 関数の定義、アロー関数、エントリポイントの仕様。 ** リファレンス [#p39641c8] ** リファレンス [#f5fc08a0] *** 関数宣言 [#obaed401] *** 関数宣言 [#nb75f9ac] #pkript(highlight){{ #highlight{{ function name([param1, param2, ...]) { // body return value; } }} - トップレベルに宣言する - スクリプト内のどこからでも呼び出し可能(宣言順序の影響を受けない) - スクリプト内のどこからでも呼び出せる(宣言順序の影響を受けない) - エントリポイント以外の関数はスクリプト内のユーティリティとして使う *** アロー関数 [#r85d5781] *** アロー関数 [#y7ba5e3c] #pkript(highlight){{ #highlight{{ const fn = (param1, param2) => expression; const fn = (param1, param2) => { // body return value; }; }} - 定義元のスコープをキャプチャする(クロージャ) - エントリポイントをアロー関数として代入・定義することも可能 - エントリポイントをアロー関数として定義することもできる *** エントリポイント [#t1b2528a] *** エントリポイント [#b3028320] |~関数名パターン|~呼び出し形式|h |plugin_スクリプト名_convert(e)|#pkript(スクリプト名) または #スクリプト名| |plugin_スクリプト名_inline(e)|&pkript(スクリプト名); または &スクリプト名;| |plugin_スクリプト名_action(e)|?plugin=pkript&script=スクリプト名(GET / POST)| |~関数名パターン|~呼び出し形式|~用途|h |plugin_スクリプト名_convert(e)|#pkript(スクリプト名) または #スクリプト名|ブロック要素(段落など)| |plugin_スクリプト名_inline(e)|&pkript(スクリプト名); または &スクリプト名;|インライン要素(行内)| |plugin_スクリプト名_action(e)|?plugin=pkript&script=スクリプト名(GET / POST)|アクション(単独ページやフォーム処理)| #スクリプト名 形式の直接呼び出しは PKRIPT_BIND で切り替える([[Pkript/設定]] 参照)。 ** 使用法 [#z4f8c1cc] *** 可変長引数 [#pde4f6df] *** エントリポイントを定義して出力を返す [#k89d6162] |~関数|~戻り値|~説明|h |func_get_args()|Array|全引数の配列| |func_num_args()|Number|引数の個数| |func_get_arg(n)|any|n番目の引数(0始まり)| #pkript(highlight){{ ** 使用法 [#b25737e5] *** エントリポイントを定義して出力を返す [#func_usage_entry] #highlight{{ function plugin_hello_convert(e) { return "<p>こんにちは、" + htmlsc(e.args[0] || "ゲスト") + "さん</p>"; } }} *** 補助関数とクロージャを利用する [#uf7a4260] *** 補助関数とクロージャを利用する [#func_usage_closure] #pkript(highlight){{ #highlight{{ function makeFormatter(prefix) { return (text) => prefix + ": " + text; } function plugin_log_convert(e) { const fmt = makeFormatter("INFO"); return "<p>" + htmlsc(fmt(e.args[0])) + "</p>"; } }} *** 可変長引数を受け取る [#func_usage_args] #highlight{{ function plugin_hello_convert() { const args = func_get_args(); return "<p>" + htmlsc(args[0] || "World") + "</p>"; } }}