是否可以在 tcl 中创建一个 dict 数组?数组包含元素 "a, b ,c" 在数组元素中 "a" 包含一些值 & 指向 dict 包含 {key , value } 在数组元素中 "b" 包含一些值 & 指向 dict 包含一些 {key ,value} 也与 "c" 类似
问问题
789 次
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 只是一个普通的列表,它适用于数组的值。在这种情况下,我有一个包含两个索引的数组myarray
,a
并且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 回答