partition()

Zusammenfassung

Trennwände Profilelement eines list in einen list von lists , die jeweils das Profilelement der list , die die Suchkriterien erfüllt und testen. Allerdings können werde die Reihenfolge der Untergruppen noch die Reihenfolge der darin enthaltenen Elemente als verlässlich angesehen werden.

Syntax

partition ( list As List, _
            Optional key As Name = :Identity, _
            Optional test As Name = :Equal) As List 
Argument Typ Beschreibung
list List Die list Partition
key Name Optional. Die name der Funktion aufgerufen werden muss für jedes Element in der list . Vorgabe ist :Identity. Der Rückgabewert dieser Funktion wird mit den Kriterien der Testfunktion verglichen.
test Name Optional. Der Name der Testfunktion angewendet werden, die auf die Ergebnisse von key aus der lists . Vorgabe ist :Equal

Beispiel 1

Intent ->partition({"a", "b", "c", "c", "e", "z", "x", "c", "e"}) 
--> {{"x"}, {"z"}, {"e", "e"}, {"c", "c", "c"}, {"b"}, {"a"}} 

Beispiel 2

Intent ->partition({"a", "c", "b", "c", 1, 3, "c", 3, 2, 1}) 
--> {{2}, {3, 3}, {1, 1}, {"b"}, {"c", "c", "c"}, {"a"}} 

Beispiel 3

Intent ->partition({:a, :c, "b", :c, 1.1, 3, :c, 3, 2, 1}, key := :integer?) 
--> {{ 1, 2, 3, 3}, {c, 1.1, c, "b", c, a}} 
In diesem Beispiel wurden die Elemente unterteilt in zwei lists - list mit Ganzzahlen und den anderen list nicht ganzzahlige Werte mit der folgenden benutzerdefinierten Funktion.
Function integer?(item As Any) As Boolean 
    integer? = (typeName(item) = :integer) 
End Function 

Beispiel 4

Intent >partition({"abc", "123", "24", "xyz", "35"}, key := :length) 
--> {{"35", "24"}, {"xyz", "123", "abc"}} 
Ergebnis evtl. nicht unbedingt werden in dieser Reihenfolge.