前節2-1で、引数の型を指定する方法を扱いましたが、今度は引数の初期値を与える方法を見ておきましょう。
引数の省略
まず、引数を省略可能にするには、引数名の前に{=?}
と書きます:
●省略可能命令({=?}A,{=?}BとC,Dで) 「{A},{B}と{C},{D}で命令が実行されました。」と表示する。 1,2と3,4で省略可能命令。 2と3,4で省略可能命令。 1,3,4で省略可能命令。 3,4で省略可能命令。
このとき、どの引数が省略されているかは、引数直後に書く「助詞」によって判断されます。例えば、「Bと」に当たる部分がない場合は、 B が省略されたと判断され、「A,」に当たる部分がない場合は A が省略されたと判断されます。
型指定と同時に指定することも可能です: {数値=?}
初期値を与える
省略した引数に初期値を与えたい場合は、"?"の代わりに具体的な値を書きます。例えば、初期値として整数1を与えたい場合は {=1}
または {整数=1}
、文字列「A」を与えたい場合は{="A"}
, {=「A」}
, {文字列=『A』}
などとなります。
●初期値命令({文字列=「A」}A,{=`B`}BとC,Dで) 「{A},{B}と{C},{D}で命令が実行されました。」と表示する。 1,2と3,4で初期値命令。 2と3,4で初期値命令。 1,3,4で初期値命令。 3,4で初期値命令。
特殊な初期値
基礎編で扱った描画命令の大半は、引数 OBJ を省略すると母艦(メインフォーム)を対象に描画するようになっていました。自分で作る命令も同じような仕様にしたい場合、どうすればいいのでしょうか?
実はグループ型の引数を省略した場合は初期値を設定できません[*1]。しかし、省略した引数に母艦を補う場合に限って、{=?母艦}
と書くことで初期値を母艦にすることができます。"?母艦"という少し変わった指定になることに注意してください。
●オレ線({グループ=?母艦}OBJのX1,Y1からX2,Y2へ) OBJのX1+10,Y1からX2-10,Y2へ線 100,200から100,300へオレ線。# 曲がった性格なオレ様?
もっと柔軟に細かく対応したい場合は、引数チェックするなどしてください。