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 に答える