我们可以创建一个数组列表以及如何?

Oli*_*veU 3 tcl

我想创建一个列表,它的每个元素都是一个数组,类似于C语言中的结构数组.
可以在TCL中完成吗?如果可以的话?非常感谢!

我做了一些尝试,但它失败了......

tcl>set si(eid) -1
tcl>set si(core) 0
tcl>set si(time) 0
tcl>lappend si_list "$si"
Error: can't read "si": variable is array
Run Code Online (Sandbox Code Playgroud)

evi*_*tto 10

您无法创建数组列表,但是您可以创建一个功能相同的dicts列表(从键到值的映射):

set mylist [list [dict create a 1 b 2] [dict create a 4 b 5]]
puts [dict get [lindex $mylist 1] a]
Run Code Online (Sandbox Code Playgroud)

要将其作为数组,您需要使用[array get]和[array set]将数组更改为字符串:

set si(eid) -1
set si(core) 0
set si(time) 0
lappend si_list [array get si]
Run Code Online (Sandbox Code Playgroud)

并把它拿回来

array set newsi [lindex $si_list]
puts $newsi(eid)
Run Code Online (Sandbox Code Playgroud)

dicts让您直接处理{name value}列表.