Dokumentation zu: filter.de(E)

HR Image


SYNOPSIS
        mixed * filter(mixed *arg, string fun, string|object ob
                                             , mixed extra...)
        mixed * filter(mixed *arg, closure cl, mixed extra...)
        mixed * filter(mixed *arg, mapping map, mixed extra...)

        string  filter(string arg, string fun, string|object ob
                                          , mixed extra...)
        string  filter(string arg, closure cl, mixed extra...)
        string  filter(string arg, mapping map, mixed extra...)

        mapping filter(mapping arg, string func, string|object ob
                                               , mixed extra...)
        mapping filter(mapping arg, closure cl, mixed extra...)

BESCHREIBUNG
        Ruft fuer jedes Element des Arrays oder Mappings <arg> die Funktion
        <ob>-><func>() bzw. die Closure <cl> auf und liefert jene Elemente,
        fuer die die Funktion / Closure TRUE ergeben hat. Die <extra>
        Argumente werden als zusaetzliche Parameter an die Funktion
        uebergeben und duerfen keine Referenzen von Array- oder Mapping-
        Elementen sein (wie &(i[1]) ).

        Wird <ob> nicht angegeben oder ist es weder ein String noch ein
        Objekt, wird standardmaessig this_object() verwendet.

        Ist <arg> ein Array oder struct, wird <fun> mit jedem Element des
        Arrays/der struct als ersten Parameter aufgerufen, gefolgt von den
        <extra> Argumenten. Wenn das Resultat der Funktion TRUE ergibt, wird
        das Element in das Ergebnis der filter() Operation mit einbezogen.

        Wird filter() mit einem Mapping <map> anstelle der Funktion <func>
        aufgerufen, wird jedes Element im Array <arg>, das ein Key von <map>
        ist, ins Ergebnis mit einbezogen.

        Wenn <arg> ein Mapping ist, wird die Funktion <func> mit jedem Key
        als erstem und (falls vorhanden) den Werten dieses Keys als zweitem
        Parameter, gefolgt von den <extra> Argumenten, aufgerufen. Wenn die
        Funktion TRUE ergibt, wird das betreffende Element des Mappings ins
        Ergebnis aufgenommen.

        Abhaengig von der Groesse des Mappings <arg> erfolgt der Aufruf der
        Funktion auf drei unterschiedliche Arten:

            widthof(arg) == 0: ob->func(key, 0, extra...)
                         == 1: ob->func(key, arg[key], extra...)
                          > 1: ob->func( key
                                       , ({ arg[key,0] ...arg[key,width-1] })
                                       , extra...)

        Der Vorteil dieser Vorgehensweise ist, dass beide Typen von
        multidimensionalen Mappings (Mappings mit mehreren Werte pro Key und
        Mappings aus Arrays) gleich verarbeitet werden koennen.

        Ist <arg> ein String, werden der Filterfunktion die einzelnen Zeichen
        des Strings uebergeben und nur jene Zeichen im zurueckgegebenen
        String aufgenommen, fuer die die Filterfunkton != 0 zurueckgibt.

ANMERKUNGEN

        Fuer Arrays wirkt filter() wie filter_array(), fuer Mappings stellt
        filter() eine Verallgemeinerung von filter_indices() dar.

GESCHICHTE
        Eingefuehrt in LDMud 3.2.6. Die Funktion loest filter_array() ab.

SIEHE AUCH
        filter(E), filter_indices(E), map(E), walk_mapping(E), member(E),
        m_contains(E)

Das Original der Seite ist in Englisch.

Start » Magierhandbuch » Docu » Efun.de » Filter.de Letzte Generierung: 25.04.2021, 01:58
Email an: mud@wl.mud.de
Valid HTML 4.01!