MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | map_objects(E) |
| 2 | |
| 3 | FUNKTION: |
| 4 | object *map_objects(object *arr, string fun [, mixed extra]) |
| 5 | |
| 6 | PARAMETER: |
| 7 | arr - zu mappendes Array von Objekten/Objektpfaden |
| 8 | fun - an Objekten zu rufende Methode |
| 9 | extra - weitere Parameter fuer Methode |
| 10 | |
| 11 | BESCHREIBUNG: |
| 12 | Mapped die Elemente aus 'arr' durch den Aufruf der Methode 'fun' an |
| 13 | jedem der Elemente von 'arr' in ein neues Array. |
| 14 | 0-Eintraege werden ignoriert. |
| 15 | |
| 16 | Der Rueckgabewert von |
| 17 | arr[n]->fun([extra1, extra2, ...]) |
| 18 | wird an der Indexposition des Elementes in das neue Array eingetragen. |
| 19 | |
| 20 | RUeCKGABEWERT: |
| 21 | Array mit Resultaten der Funktionsaufrufe am jeweiligen Objekt. |
| 22 | |
| 23 | BEMERKUNGEN: |
| 24 | Werden Pfade angegeben, so wird versucht ein Objekt zu laden, falls |
| 25 | dieses nicht existiert. |
| 26 | |
| 27 | BEISPIEL: |
| 28 | // ersetze alle Objekte durch ihre Namen |
| 29 | arr=map_objects(inputarr, "name"); |
| 30 | |
| 31 | // ersetze alle Objekte durch ihre Namen im Genitiv |
| 32 | arr=map_objects(inputarr, "name", WESSEN); |
| 33 | |
| 34 | AeQUIVALENZCODE (nicht empfohlen, nur zum Verstaendnis!): |
| 35 | int i; |
| 36 | object *ret; mixed *input; |
| 37 | |
| 38 | i=sizeof(input); |
| 39 | ret=allocate(i); |
| 40 | while(i--) |
| 41 | ret[i]=input[i]->fun([extra1, extra2, ...]); |
| 42 | |
| 43 | SIEHE AUCH: |
| 44 | Arrays: filter(E), map(E) |
| 45 | Objektarrays: filter_objects(E) |
| 46 | Mappings: filter_indices(E), map_indices(E) |
| 47 | |
| 48 | Sonstiges: sort_array(E), unique_array() |
| 49 | alist, transpose_array(E) |
| 50 | |
| 51 | 20.Jan 2005 Gloinson |