4
我似乎在名为chicken的列表中有Jim和Bob的问题。我知道这是可能的,在另一个具有值列表的字典中有一个字典。我究竟做错了什么?Tcl:字典里面的字典
puts [dict set farm tools hoe]
puts [dict lappend farm tools pitchfork]
puts [dict set farm animal cow Marry]
puts [dict set farm animal chicken Jim]
puts [dict lappend farm animal chicken Bob]
puts "chicken list: [dict get $farm animal chicken]"
puts "tool list: [dict get $farm tools]"
输出
tools hoe
tools {hoe pitchfork}
tools {hoe pitchfork} animal {cow Marry}
tools {hoe pitchfork} animal {cow Marry chicken Jim}
tools {hoe pitchfork} animal {cow Marry chicken Jim chicken Bob}
chicken list: Bob
tool list: hoe pitchfork
正如你所看到的工具清单的工作。但鸡列表不起作用。我构建代码的方式有问题吗?我使用字典lappend或字典错误?任何事情都有助于说明这一点,谢谢。
至于是谁设计'字典lappend'的人,这是正确的解决方案。没有“语法空间”来嵌套键处理,同时允许将多个值附加到目标子列表。那么,除非键的空间被不同的丑陋方式所限制。这都是设计的妥协。 '带'的字典和'字典更新'是解决这个问题的方法。 –