WikiChree.COM 新規   編集   添付   管理  



トップ   編集 編集〔GUI〕 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS   ログイン

Pkript/文法/関数 の変更点

#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>";
}
}}