blob: 75cf827b46ed03a6596323c22ec169e1a0001be1 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001SYNOPSIS
2 mapping mkmapping(mixed *arr1, mixed *arr2, mixed *arr3, ...);
3 mapping mkmapping(struct st);
4
5BESCHREIBUNG
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
23BESIPIEL
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
31AeNDERUNGEN
32 LDMud 3.3.433 ermoeglichte die Konversion von structs.
33
34VERGLEICHE
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)