Вы можете использовать составные ключи, как это (самый удобный вариант в простейших случаях):
set x 1
set y 2
set d($x,$y) 3
Или вы можете поместить словарь в элемент массива:
set x 1
set y 2
dict set d($x) $y 3
Или вы можете использовать вложенный словарь:
set x 1
set y 2
dict set d $x $y 3
Существуют некоторые тонкости в различиях между ними, но большую часть времени код большинства людей на самом деле не заботится и не нуждается в заботе.
Вот тот случай, когда вам, скорее всего, придется позаботиться. Если вы делаете первый вариант и не можете дать гарантии относительно того, какие символы могут быть в атомарных ключах, вы можете использовать list
для построения общего ключа (поскольку он знает, как применять правила цитирования, чтобы избежать путаницы):
set x "the quick, cunning brown fox"
set y "the ever-so, ever-so lazy dog"
set d([list $x $y]) "jumps over"
Конечно, это делает доступ более неловким, поскольку вам нужно использовать list
(или другую команду построения списка) при построении ключей (или иметь правильные строковые литералы, что раздражает для большего размера). ключи). Два других варианта вообще не имеют проблем с путаницей произвольных ключей; словари не перепутали такие вещи, как явная цель проектирования.