0

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

4

1 回答 1

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 只是一个普通的列表,它适用于数组的值。在这种情况下,我有一个包含两个索引的数组myarraya并且b.

更新

您还可以使用 dict 的 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.name, a.password, ...

于 2013-08-13T20:02:50.953 回答