Tcl8.5 Dictionaries per 'append' verknüpfen

Legen wir die folgenden drei Dictionaries für unser Beispiel an:
set md1 [dict create 1 {descr "dict 1"}]
set md2 [dict create 2 {descr "dict 2"}]
set md3 [dict create 3 {descr "dict 3"}]
Nun wollen wir die einzelnen Dictionaries per dict append mit einander verknüpfen. Und zwar so, dass wir folgende (verschachtelte) Struktur erhalten:
1 {descr "dict 1" 2 {descr "dict 2" 3 {descr "dict 3"}}}
D.h., md3 soll an md2 angehängt werden und dies dann wiederrum an md1. Dies erreicht man z.B. so:
# Variante 1
#

dict append md2 2 " $md3"
dict append md1 1 " $md2"
Man beachte die Reihenfolge!

Falsch wäre folgende Vorgehensweise:
# Variante 2
#

dict append md1 1 " $md2" ;# liefert noch das richtige Ergebnis
dict append [dict get $md1 1] 2 " $md3" ;# hier geht's schief!
Warum? Tcl hätte statt des Ausdrucks [dict get $md1 1] gern eine Dictionary-Variable, die das Ergebnis dann auch dauerhaft behält.

Bestimmt gibt es auch eine Möglichkeit, dies auch in der gedanklich "richtigen" Reihenfolge zu bewerkstelligen, d.h. erweitere Key[1] von md1 um md2 und dann Key[1][2] um md3. Aber ich vermute, dass der Aufwand hier den Nutzen übersteigt und bevorzuge daher weiterhin die zuerst gezeigte Vorgehensweise (Variante 1).

 
 Artikel als Bookmark:
Beitrag wurde bisher 241 mal geöffnet
RA Zabel/Stolze
 
Dein Beitrag
Hilfe
fett
kursiv
unterstrichen
url
url=
einrücken
code
liste
 
Zitat
Zitat=
codewort
Vorschau ausschalten
Man kann mittels der BBCodes den Text etwas gestalten. Möchtest Du z.B. ein Wort fett darstellen, so kannst Du das Wort markieren und danach einfach auf das Icon "[b][/b]" klicken. Es ist auch möglich, erst auf ein BBCode-Icon zu klicken und danach den Text einzufügen. Sollte bei Deinem Browser das Einfügen der BBCodes per Mausklick nicht funktionieren, so kannst Du die Codes auch per Hand eingeben. Gib dazu die BBCodes wie auf den Buttons dargestellt ein - achte auf korrekte Eingabe der Start- und End-Tags (falls vorhanden).

Beispiele für BBCodes:

[b][i]Hallo Welt[/i][/b] Hallo Welt
[url]http://www.example.com[/url] http://www.example.com
[url=http://www.example.com]Beispiel[/url] Beispiel
[code]<script type='text/javascript'>
[indent][b]alert[/b]("Hallo");
</script>[/code]
probiers aus
[list][*]Punkt 1[/*][*]Punkt 2[/*][/list] probiers aus
[cite=Matthias Sonnenkalb, [i]the blog[/i]]hallo ein Zitat[/cite] probiers aus

Hinweis: Mittels "Vorschau ausschalten" kann man die Live-Preview-Funktion abschalten. Dies kann sich vorteilhaft auf die Geschwindigkeit bei der Texteingabe auswirken.
1
Dein Name
  • 98 Artikel  (zeigen)
  • 70221 Klicks
  • 57 Kommentare
  • 11 Artikel (2010)  (zeigen)
  • 2862 Klicks (2010)
  • 1 Kommentare (2010)
Freunde / Linkparade (4)