set my_dict [dict create a [dict create aa AA] b B]
创建一个字典,打印如下:
==> a {aa AA} b B
这是一本嵌套字典:
dict get my_dict a aa
==> AA
是否可以通过一种更优雅的方式来创建嵌套字典,像这样:
set my_dict [nested_dict_create {a «aa AA» b B}]
很明显,一个人可以编写这样的命令,但是任何一个lib中都有类似的东西吗?尝试天真地将字典指定为{a {aa AA} b BB}失败,因为无法从简单的字符串“ aa AA”告诉子字典。乍一看,在tcl本身中为此类事情编写解析器似乎效率低下,在语言的核心或使用C语言编写的某些库中,并使用某种语法扩展,这样的功能会更好。
答案 0 :(得分:0)
只需将其创建为文字列表:
% set mydict {a {aa {AA}} b BB}
a {aa {AA}} b BB
% dict get $mydict a aa
AA
AA可以加引号或不加引号:一个单词没关系。
答案 1 :(得分:0)
如果选中dict man page,将会看到可以通过在一个命令中提供多个键来设置嵌套字典键。但是,这仅适用于单个嵌套的钥匙链。然后,您将无法继续提供其他一级密钥。 换句话说,您可以使用两个单独的命令从示例中获得结果:
dict set my_dict a aa AA
dict set my_dict b B
dict get $my_dict
> output: a {aa AA} b B
dict get $my_dict a aa
> output: AA