在Tcl中初始化空数组的正确方法是什么?
我有以下代码(简化):
proc parseFile {filename results_array} {
upvar $results_array results
set results(key) $value
}
set r1 {}
parseFile "filename" r1
Run Code Online (Sandbox Code Playgroud)
我收到错误:
错误:无法设置"结果(键)":变量不是数组
Bry*_*ley 22
要初始化数组,请使用"数组".如果你只想创建内部数组对象而不给它任何值,你可以给它一个空列表作为参数.例如:
array set foo {}
Run Code Online (Sandbox Code Playgroud)
如果要为其赋值,可以为其提供正确引用的键/值对列表:
array set foo {
one {this is element 1}
two {this is element 2}
}
Run Code Online (Sandbox Code Playgroud)
您无需在 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
Run Code Online (Sandbox Code Playgroud)
产量:
two one
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27827 次 |
| 最近记录: |