blob: acf9f1ba03be5eafce03a7d193174abfcf16af1b [file] [log] [blame]
m_copy_delete()
===============
FUNKTION
--------
::
mapping m_copy_delete(mapping map, mixed key)
ARGUMENTE
---------
::
map - das Mapping, aus dem geloescht werden soll.
key - der zu loeschende Eintrag
BESCHREIBUNG
------------
::
Aus dem Mapping map wird der Eintrag key geloescht (wenn er in map vor-
handen ist). map wird dabei nicht veraendert.
RUECKGABEWERT
-------------
::
Eine (flache !) Kopie von map ohne den Eintrag key, d.h. enthaltene
Mappings/Arrays werden nicht kopiert.
BEMERKUNGEN
-----------
::
Das urspruengliche Mapping wird bei dieser Operation nicht veraendert!
Wenn man nur einen Wert aus dem Mapping loeschen will und die Kopie nicht
braucht, bietet sich efun::m_delete(mapping,key) sehr an, da die Erstellung
einer Kopie sehr aufwendig sein kann.
BEISPIELE
---------
::
mapping m1, m2;
m1 = ([ "a":1, "b":2, "c":3 ]);
m2 = m_copy_delete(m1, "b");
=> m1 = ([ "a":1, "b":2, "c":3 ])
m2 = ([ "a":1, "c":3 ])
m_copy_delete(m1, "a");
=> (es hat sich nichts geaendert)
m1 = m_copy_delete(m1, "a");
=> m1 = ([ "b":2, "c":3 ])
Im letzten Fall sollte aber besser efun::m_delete(m1, "a") benutzt
werden, da ansonsten das Mapping unnoetig kopiert wird und Rechen-
leistung frisst.
SIEHE AUCH
----------
::
efun::m_delete(E), mappingp(E), mkmapping(E), m_indices,(E) m_values(E),
sizeof(E), widthof(E)