MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | SYNOPSIS |
| 2 | mapping mkmapping(mixed *arr1, mixed *arr2, mixed *arr3, ...); |
| 3 | mapping mkmapping(struct st); |
| 4 | |
| 5 | BESCHREIBUNG |
| 6 | Liefert ein Mapping mit Keys aus <arr1> und Datenelementen aus |
| 7 | <arr2>, <arr3>.... Dem Key <arr1[0]> werden die Datenelemente |
| 8 | <arr2[0]>, <arr3[0]>... zugeordnet. Wenn die Datenarrays |
| 9 | ungleich gross sind, enthaelt das Mapping nur so viele Eintraege, |
| 10 | wie im kleinsten Datenarray enthalten sind. |
| 11 | |
| 12 | Die zweite Form konvertiert die angegebene struct <st> in ein Mapping. |
| 13 | Hierbei werden die Namen des jeweiligen Elementes in der struct als |
| 14 | als Schluessel. |
| 15 | |
| 16 | Gewoehnlich werden Mappings erweitert, indem einfach neue Elemente |
| 17 | eingefuegt werden. Diese Funktion ist nuetzlich, wenn der |
| 18 | ungefaehr benoetigte Speicherplatz bereits vorher bekannt ist, |
| 19 | um so den Overhead bei der Speicherallokation zu minimieren. |
| 20 | Allenfalls zu viel allozierter Speicher wird freigegeben, sobald |
| 21 | die Funktion, die die mkmapping() Anweisung enthaelt, beendet ist. |
| 22 | |
| 23 | BESIPIEL |
| 24 | mkmapping( ({ 1, 2 }), ({ 10, 11 }), ({ 20, 21, 22})); |
| 25 | liefert ([ 1:10;20, 2:11;21 ]) |
| 26 | |
| 27 | struct s { int a, b, c; }; |
| 28 | mkmapping( (<s> 1, ({ 2, 3 }), 3 ) |
| 29 | liefert ([ "a":1, "b":({2,3}), "c":3 ]) |
| 30 | |
| 31 | AeNDERUNGEN |
| 32 | LDMud 3.3.433 ermoeglichte die Konversion von structs. |
| 33 | |
| 34 | VERGLEICHE |
| 35 | mappings(LPC), mappingp(E), m_indices(E), m_values(E), |
| 36 | m_add(E), m_delete(E), sizeof(E), widthof(E), unmkmapping(E), |
| 37 | to_struct(E) |