我们可以在tcl中使用dict数组吗?

时间:2013-08-13 19:40:25

标签: tcl

可以在tcl中创建一个dict数组吗? 数组包含元素“a,b,c”    在数组元素中,“a”包含一些值&指向dict包含{key,value}    在数组元素中,“b”包含一些值&指向dict包含一些{key,value}    类似于“c”也是

1 个答案:

答案 0 :(得分:0)

是的,可以做到:

(1)% set myarray(a) [dict create user john password iforgot]
user john password iforgot

(2)% set myarray(b) [dict create user trish password samehere]
user trish password samehere

(3)% parray myarray
myarray(a) = user john password iforgot
myarray(b) = user trish password samehere

(4)% # Get password for user in slot a
(5)% dict get $myarray(a) password
iforgot

讨论

dict只是一个普通的列表,对于数组的值很好。在这种情况下,我有一个数组myarray,其中包含两个索引,ab

更新

你也可以使用dict的词典:

set master [dict create]
dict set master a [dict create user john password iforgot]
dict set master b [dict create user trish password samehere]

您还可以使用Tclx键控列表:

(97)% package require Tclx

(98)% keylset db a.name john a.password iforgot b.name trish b.password samehere

(99)% puts $db
{a {{name john} {password iforgot}}} {b {{name trish} {password samehere}}}

(100)% keylkeys db
a b

(101)% keylget db a
{name john} {password iforgot}

(102)% keylget db a.name
john

键控列表的好处是键可以嵌套:a.namea.password,...