コンテンツにスキップ

関数

基本的な関数定義

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() エラーハンドラが呼ばれる。

関連