Start Info Community Spielen
 
 

Morgengrauner Dokumentation

Dateipfad: /home/mud/mudlib/doc/efun/filter

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  die Funktion
        ->() bzw. die Closure  auf und liefert jene Elemente,
        fuer die die Funktion / Closure TRUE ergeben hat. Die 
        Argumente werden als zusaetzliche Parameter an die Funktion
        uebergeben und duerfen keine Referenzen von Array- oder Mapping-
        Elementen sein (wie &(i[1]) ).

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

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

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

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

        Abhaengig von der Groesse des Mappings  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  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)


zurück zur Übersicht

YOUTUBE | FACEBOOK | TWITTER | DISCORD | FEEDBACK | IMPRESSUM | DATENSCHUTZ 1992–2023 © MorgenGrauen.