collection.every( ) ファンクションは、コレクション内の全ての要素が、methodName 引数で指定された関数で実装されたテストにパスした場合にはtrue を返します。
デフォルトでは、collection.every( ) はコレクション全体をテストします。オプションとして、startFrom 引数を使用してテストを開始する要素のインデックスを渡すこともできます。
- startFrom がコレクションのlength 以上だった場合、false が返されます。これはコレクションがテストされていないことを意味します。
- startFrom が負の値(0未満)だった場合、それはコレクションの終わりからのオフセットであるとみなされます(startFrom:=startFrom+length)。
- startFrom が0だった場合、コレクション全体がテストされます(デフォルト)。
methodName 引数には、コレクションの要素を評価するのに使用するメソッド名を渡します。必要であればparam 引数に必要な引数を渡します(任意)。methodName で指定したメソッドはどんなテストでも実行でき、引数はあってもなくても構いません。このメソッドは$1にObject 引数を受け取り、テストをパスした要素の$1.result をtrue に設定しなければなりません。
methodName で指定したメソッドは以下の引数を受け取ります:
- $1.value: 評価する要素の値
- $2: param
- $N...: param2...paramN
methodName で指定したメソッドは以下の引数を設定しいます:
- $1.result (ブール): 要素の値の評価が全て成功した場合にはtrue 、それ以外の場合にはfalse
- $1.stop (ブール、任意): メソッドコールバックを止める場合にはtrue。返された値は最後に計算されたものです。
どの場合においても、collection.every( ) ファンクションが$1.result にfalse を返すコレクションの要素を発見した場合、ファンクションはmethodName のメソッドの呼び出しをやめ、false を返します。
C_COLLECTION($c)
$c:=New collection
$c.push(5;3;1;4;6;2)
$b:=$c.every("NumberGreaterThan0")
$c.push(-1)
$b:=$c.every("NumberGreaterThan0")
NumberGreaterThan0 メソッドの中身は以下のようになります:
$1.result:=$1.value>0
以下の例はコレクションの全ての要素が実数型であるかをテストします:
TypeLookUp メソッドの中身は以下のようになります:
C_OBJECT($1)
C_LONGINT($2)
If(Value type($1.value)=$2)
$1.result:=True
End if