Первоначальное создание этого может быть сделано просто:
dict set my_dict key1 key2 key3 {}
, но добавление к этому внутреннему словарю немного неловко. (Не все подкоманды dict
поддерживают вложенные словари напрямую; слишком много неоднозначностей syntacti c, чтобы позволить ему работать.) Именно здесь dict update
особенно полезно:
dict update my_dict $key1 subdict1 {
dict update subdict1 $key2 subdict2 {
dict append subdict2 $key3 "foo bar"
}
}
Преимущество более dict with
в том, что последний расширяет весь словарь, и вы не имеете никакого реального контроля над тем, какие переменные изменяются; dict update
избирателен в нескольких отношениях (например, вы можете использовать переменные с именами, не совпадающими с ключами, и вы можете только расширять ключи, которые вам нужны).