在Tcl中初始化空数组的正确方法是什么?
我有以下代码(简化):
proc parseFile {filename results_array} {
upvar $results_array results
set results(key) $value
}
set r1 {}
parseFile "filename" r1
我收到错误:
错误:无法设置“结果(键)”:变量不是数组
答案 0 :(得分:20)
要初始化数组,请使用“数组”。如果你只想创建内部数组对象而不给它任何值,你可以给它一个空列表作为参数。例如:
array set foo {}
如果你想给它一个值,你可以给它一个正确引用的键/值对列表:
array set foo {
one {this is element 1}
two {this is element 2}
}
答案 1 :(得分:4)
您没有在Tcl中初始化数组,它们只是在您设置成员时出现:
proc stash {key array_name value} {
upvar $array_name a
set a($key) $value
}
stash one pvr 1
stash two pvr 2
array names pvr
的产率:
two one
答案 2 :(得分:0)
set marks(english)80
设置array_name(key)值