如何创建多维哈希结构

时间:2018-05-15 07:17:45

标签: tcl

在TCL中创建和访问多维哈希的最佳方法是什么,例如:

if{ $line = (\D+) ....} {
$hash{name}=$1
$hash{height}=$2
}

1 个答案:

答案 0 :(得分:1)

您可以使用这样的复合键(最简单的最佳选项):

set x 1
set y 2
set d($x,$y) 3

或者您可以将字典放在数组元素中:

set x 1
set y 2
dict set d($x) $y 3

或者您可以使用嵌套字典:

set x 1
set y 2
dict set d $x $y 3

关于它们之间的差异有一些微妙之处,但大多数时候大多数人的代码并不真正关心,也不需要关心。

以下是您最需要照顾的情况。如果您正在执行第一个选项,则无法保证哪些字符可能在原子键中,您可以使用list来构建整体密钥(因为它知道如何应用引用规则以避免混淆):

set x "the quick, cunning brown fox"
set y "the ever-so, ever-so lazy dog"
set d([list $x $y]) "jumps over"

当然,这使得访问更加尴尬,因为您需要在构建密钥时使用list(或其他列表构建命令)(或者具有正确的字符串文字,这是烦人的更大的钥匙)。其他两个选项完全没有问题,任意键混乱;字典并没有因明确的设计目标而混淆。