position()

概要

一覧からの検索条件を満たした最初の項目の位置を返します。最も単純な形態では、項目と一致する一覧 inList から最初の項目の位置を返します。inList の各エントリに適用される関数名であるキーを指定すると、より役立ちます。条件を満たすエントリがない場合、NoValue が返されます。

構文

position ( item as Any, _
           inList As List, _
           Optional key As Any = :Identity ) As Any 
引数 [タイプ] 説明
item すべて 検索が成功するために一致する必要のある値です。
inList list 候補の一覧です。一致する最初のものだけが返されます。
key すべて 任意指定。関数の名前または整数値のいずれかにすることができます。既定は :Identity です。関数名を使用すると、関数が一覧内の各項目に対して呼び出されます。関数は、項目に対して一致し得る値を返す必要があります。整数値を使用するときは、一覧内の各項目自身が一覧である必要があります。値は、項目に対して一致する値が記述されている各サブリスト内の位置を表します。

例 1

単純な一致
Intent >position(13, {11, 12, 13}) 
--> 3 
ここでは、整数値 13 は位置 3 で一致しました。

例 2

一致なし
Intent >position(7, {4, 8, 2}) 
--> NoValue 
ここでは、整数値 7 は一覧項目のいずれとも一致しないので、NoValue が返されます。

例 3

key 関数を使用します。
Intent >position(9, {{3, 6, 9}, {9, 5, 6}, {9, 1, 2}}, key := :first) 
--> 2 
この例では、inList の各一覧の最初のメンバにのみ項目が比較されます。最初の一致の位置のみが返されることに注意してください。

例 4

整数キーを使用する
Intent >position(42, { {"abc", 10}, {"def", 42}, {"ghi", 18} }, key := 2) 
--> 2 
ここでは、各サブリストの 2 番目の要素が項目と比較されます。これは 2 番目のサブリストに一致します。