関数¶
基本的な関数定義¶
Test{
"Hello World!"
}
代入式でないただの変数や文字列が存在すると、それが返り値として扱われる。
複数の返り値候補¶
複数の候補がある場合、ランダムに1つが選ばれる:
Test{
A = 10
"Hello World!"
"Hallo Welt!"
10
11+32
}
このとき "Hello World!"、"Hallo Welt!"、10、43 のどれかがランダムに返る。
引数¶
引数はローカル変数配列 _argv に格納され、_argc が引数の数を保持する:
てすと{
"入力は「" + _argv[0] + "」だよ"
}
呼び出し例:てすと("うかがか") → "入力は「うかがか」だよ"
変数の種類¶
| 種類 | プレフィックス | スコープ |
|---|---|---|
| ローカル変数 | _ |
定義された波括弧内のみ |
| グローバル変数 | なし | どこからでもアクセス可能。ゴースト終了後も永続 |
変数はスコープに関わらず、関数の中でのみ定義できる。
関数呼び出し制限¶
fncdepth 設定で再帰深さの上限を制御(デフォルト: 32階層)。上限を超えると shiori.OnCallLimit() または shiori.OnMemoryLimit() エラーハンドラが呼ばれる。