ITCL - 如何访问类中的关联数组成员?

时间:2009-10-29 19:44:42

标签: tcl incr-tcl

如何在类本身内访问类的关联数组成员? Itcl以C ++为模型,在C ++中我们会写:

SomeObject.SomePublicMember = ...

如何在Itcl中做同样的事情?没有为这样的阵列提供访问程序。我已经看到,对于通常的普通变量,这可以通过使用cget:

获得
$this cget -PublicMemberVariableName

但是以下构造不起作用:

$this cget -AssociativeArrayName(NamedIndex)

这有可能吗?

1 个答案:

答案 0 :(得分:2)

唉,cget不会得到你想要的。数组元素不会一直传递到ItclGetInstanceVar(我不知道为什么)。

可以使用get / set等:

class myObject {
   public variable AssArray
   constructor {} {
      array set AssArray ""
   }
   method setArr { elem val } {
      set AssArray($elem) $val
   }
   method getArr { elem } {
      return $AssArray($elem)
   }
   method getFullArr {} {
      return [array names AssArray]
}