我是TCL的新手,我正在开发一个项目,我需要从不同的列表中创建一个对象列表,该列表包含我用来访问某些数据的地址。我写的这个类包含了这个数据。到目前为止我遇到的问题是如何创建对象列表
for {set i 0} {$i<$len} {incr i} {
set dat [lindex $PTR_ARR $i]
if { $dat != 0x0000000000000000 } {
set name "Slot Context$i"
Slot_Context $name $dat
append $obj_arr $ptr
}
}
PTR_ARR-是将传递给类的指针列表 这个实现不起作用,我得到错误,我试图搜索信息,但几乎没有关于TCL中类的实现的信息。 你对我能做些什么有什么想法吗?
答案 0 :(得分:0)
如果obj_arr
是包含您尝试追加的数组的变量的名称,则追加到它的正确方法是a)使用变量 name 而不是append语句中的值,以及b)使用lappend
(list append)而不是append
(string append):
lappend obj_arr $ptr
如果要附加实际对象而不是$ptr
,请按以下方式添加:
lappend obj_arr [Slot_Context $name $dat]
以上调用Slot_Context
命令,然后将该命令的结果附加到名为obj_arr
的列表中。