In Attributwert einfügen

Syntax

$object.add(`$attr`, $value)

$object.add(`$attr`, $index, $value)

​Beschreibung

Hängt einen Wert value an ein mengenwertiges Attribut attr des Objekts object an.

Kann auch mit der Funktion set() durchgeführt werden, indem die alte Menge der Attributs mit dem neuen Wert konkatiniert wird:

$object.set(`$attr`, concat(object.get(`$attr`).subList(0, $index), $value, object.get(`$attr`).subList($index)))

Parameter

Name Typ Beschreibung Pflicht Default
object Fachobjekt Das Objekt, dem ein neuer Wert in einem Attribut angefügt werden soll. ja
attr Zeichenkette Das Attribut-Literal des Attributs, dem ein Wert hinzugefügt werden soll. Das Attribut muss eine Liste sein. Attribute mit nur Einzelwerten erzeugen eine Fehlermeldung, da nichts hinzugefügt, sondern nur gesetzt werden kann (vgl. Attributwert setzen) ja
index Zahl Die Position im mengenwertigen Attribut, an der der neue Wert eingefügt werden soll. nein

index = object.get(`$attr`).size()

In dem Fall wird der neue Wert an das Ende der Menge eingefügt.

value Zahl/Zeichenkette/Wahrheitswert/Fachobjekt/Menge Der neue Wert, der dem Attribut des Objekts hinzugefügt werden soll. ja

Beispiele

Neues Kind einfügen

	{
   parent = new(`my.module:MyType`);
   child = new(`my.module:MyType`);
   $parent.add(`my.module:MyType#children`, $child);
   $parent.get(`my.module:MyType#children`);
}

Ausgabe: Eine Liste mit dem Element [child].

Nachdem zwei Objekte erstellt wurden, wurde ein Objekt dem anderen als Kind hinzugefügt.

Neues Kind an Index einfügen

	{
   parent = new(`my.module:MyType`);
   child1 = new(`my.module:MyType`);
   child2 = new(`my.module:MyType`);
   child3 = new(`my.module:MyType`);
   $parent.add(`my.module:MyType#children`, $child1);
   $parent.add(`my.module:MyType#children`, $child3);
   $parent.add(`my.module:MyType#children`, 1, $child2);
   $parent.get(`my.module:MyType#children`);
}

Ausgabe: Eine Liste mit den Elementen [child1, child2, child3]

Das Objekt child2 wird durch die Angabe des Indizes zwischen child1 und child3 eingefügt.