引数
メソッドや関数にデータを渡す必要がしばしば発生します。 これは引数によって容易にできます。
概要
引数 (または パラメーター) とは、メソッドや関数が処理に必要とするデータのことです。 引数 と パラメーター は厳密には違うものですが、このマニュアルでは同義語として使用されています。 引数は、ビルトインの 4Dコマンドにも渡されます。 以下の例は、“Hello” という文字列を引数としてビルトインの ALERT
コマンドへ渡します:
ALERT("Hello")
メソッドやクラス関数に引数を渡す場合も同様におこないます。 たとえば、getArea()
クラス関数が 2つの引数を受け取る場合、このクラス関数を呼び出すには以下のように書きます:
$area:=$o.getArea(50;100)
また、プロジェクトメソッド DO SOMETHING
が3つの引数を受け取る場合、このメソッドを呼び出すには以下のように書きます:
DO_SOMETHING($WithThis;$AndThat;$ThisWay)
入力引数は、セミコロン (;) で区切ります。
メソッドを実行する専用コマンドを利用するときも、同じ原則で引数を渡します。
EXECUTE METHOD IN SUBFORM("Cal2";"SetCalendarDate";*;!05/05/20!)
// サブフォーム "Cal2" のコンテキストにおいて SetCalendarDate を実行し
// その際に引数として日付リテラル !05/05/20! を渡します
メソッドやクラス関数からデータを 返す こともできます。 以下は、文字列のデータ長を返すビルトインの Length
コマンドを用いたステートメントです。 このステートメントでは、Length
関数が MyLength という変数に値を返します。
MyLength:=Length("How did I get here?")
どのようなサブルーチンでも値を返すことができます。 各メソッドやクラス関数につき、定義できる戻り値は一つだけです。
入力および出力値は呼び出し時に 評価 され、その値はそれぞれ自動的にサブルーチン (呼び出されたメソッドまたはクラス関数) 内のローカル変数に格納されます。 呼び出されるメソッドにおいて、これらのローカル変数を宣言するには次の 2つのシンタックスが利用できます:
- 名前付き変数 (ほとんどの場合に推奨)
- 受け渡し順に番号が付けられた変数 (順番引数)
引数の宣言にあたって、名前付き シンタックスと 順番 シンタックスは制限なく併用することができます。 例:
Function add($x : Integer)
var $0;$2 : Integer
$0:=$x+$2
初期化
引数は宣言されると、その型に対応するデフォルト値 に初期化されます。別の値が代入されない限り、セッション中はこの値が保持されます。