2

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

SomeObject.SomePublicMember = ...

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

$this cget -PublicMemberVariableName

但是,以下构造不起作用:

$this cget -AssociativeArrayName(NamedIndex)

这可能吗?

4

1 回答 1

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]
}
于 2009-10-30T01:18:50.307 回答