我看到有人以这种方式设置变量:
set selectRoom(1,deflt) 1
这个selectRoom(1,deflt)
意味着什么?这是怎么回事?
答案 0 :(得分:3)
selectRoom
是一个数组,1,deflt
是索引。
要查看数组中设置的内容,可以使用parray
或array get
命令。
答案 1 :(得分:1)
如前所述,selectRoom
是一个数组,但我想扩展一下这个答案。
您可能会想到索引1,deflt
表明这是一个二维数组。事实上并非如此; Tcl does not support multidimensional arrays。逗号符号只是Tcl程序员用来模拟多维数组的约定。逗号是字符串的一部分,而不是特殊的分隔符。
在Tcl中,数组有点像其他语言中的哈希映射。索引始终是一个字符串(因为everything is a string in Tcl)。这有另一个含义:它们没有被排序,所以当你迭代它们时你必须要小心。