itcl:如何将class对象加到数组中?
将class对象加到数组中时,提示
============================================================
A::f1
can't read "a": no such variable
while executing
"set arr(0) $a"
(file "E:\eclipse\eclipse_workspace\main.tcl" line 33)============================================================
创建对象,对象名就成了一个tcl 命令,
是不是这样,所以认为 a不是变量呢?
在tcl语言中,本身是不支持复杂对象加入数组的,
Itcl应该支持,不知该如何使用?
哪位兄弟姐妹知道的,帮忙讲下,谢谢!
============================================================
code:
package require Itcl
::itcl::class A {
public method f1 { } {
puts "A::f1"
}
}
::itcl::class B {
public method f2 { } {
puts "B::f2"
}
}
A a
a f1
array set arr ""
set arr(0) $a
puts $arr(0)
=============================================================
[解决办法]
数据类型不符,需要将数据的类型进行转换后,才可以添加到数组中。