多くの方は、不定数の引数を受け取ることができるメソッドや関数を使用することに慣れていることでしょう。こういった関数は一般的に可変長引数関数または可変長関数などと呼ばれます。
4D v20 R3 では、皆さんの開発のしやすさを向上させるために、エリプシス(省略記号)を導入することで、これらのメソッドの宣言を合理化し、コードをよりわかりやすく、作業しやすくしました。
関数やメソッドの宣言で、最後の引数に”… “を使用することで、引数の数が不定であることを指定できるようになりました。この記号には、補足として型を指定することもできます。ここで指定された型を使用して、4Dは関数やメソッドが受け取る引数の型をチェックします。
例えば、引数として渡されたすべての数値を合計するSumNumbers メソッドを作成したい場合を考えます:
#DECLARE( ... : Real) : Real
var $number; $total : Real
var $i : Integer
For ($i; 1; Count parameters)
$total+= ${$i}
End for
return $total
このメソッドは、不定数の引数を渡して呼び出すことができます:
$total1:=SumNumbers // 0 を返す
$total2:=SumNumbers(1; 2; 3; 4; 5) // 15 を返す
このシンタックスを使用した場合では、4Dは引数の型をチェックします:
$total3:=SumNumbers(1; 2; "test"; 4; 5) // エラーを返す
そのため、どのような型でも受け入れたい場合は型を指定せずに”… “を使用してください:
function AcceptAllType(...)
var $value : variant
// Copy parameters() returns a collection with all the parameters
For each ($value; Copy parameters())
// your code here
End for each
この新しいシンタックスを活用して、柔軟な関数やメソッドを存分に作成してください。また分からないことがあれば是非ドキュメンテーションを参照して下さい!