2012-04-24 17 views
1

オブジェクトをreg変数に代入したいのですが、それができるかどうかわかりません。もしそうなら、どうすれば構いませんか?Tclオブジェクトを変数に割り当てることはできますか?

class Var { 
     constructor {Name values order} {} { 
      set mName $Name 
      set mValues $values 
      set mOrder $order    
     } 
     destructor { 
     } 
     public method GetName {} { 
      return $mName 
     } 
     public variable mOrder 
     public variable mName 
     public variable mValues 
    } 

とオブジェクト::

Var::var_ 

私はREG変数へのオブジェクトのVARを割り当てることができる。例えば

、 私はクラスVarを持っていますか?そのような

何か:

reg set var/var_ Var::var_ 
+0

「REG」は、この文脈では何を意味するのでしょうか?おそらく "定期的に"? –

+0

regは "registry"を意味します –

答えて

2

あなたはどの変数で[INCRのTcl]オブジェクトの名前を保存することができます。 setと通常のように割り当ててください。

クラス変数は、修飾名によって参照することができます:CLS::VAR

あなたはそのクラスのメソッド外に使用できるインスタンス変数への参照をしたい場合、あなたは内itcl::scopeを使用する必要がありますトークンを生成するメソッド(またはコンストラクタ)。返されるトークンの形式は十分に文書化されておらず、変更される可能性があります。これらの事のいくつか試す


:私のシステムで

package req Itcl 
itcl::class Var { 
    constructor {Name values order} {} { 
     set mName $Name 
     set mValues $values 
     set mOrder $order    
    } 
    destructor {} 
    public method GetName {} { 
     return $mName 
    } 
    public method GetNameVar {} { 
     return [itcl::scope mName] 
    } 
    public variable mOrder 
    public variable mName 
    public variable mValues 
} 
set foo [Var var_ a b c] 
puts $foo 
puts [$foo GetName] 
append [$foo GetNameVar] [$foo GetName] "rdvark" 
puts [var_ GetName] 
puts [var_ GetNameVar] 

を、私はこの出力を得る:

 
var_ 
a 
aardvark 
@itcl ::var_ ::Var::mName 
+0

私はデータベースを保存しているときにreg変数にオブジェクトを保存する必要があります。reg変数も保存します。データベースにロードするときは、前に作成したオブジェクトをすべて取得します。 –

関連する問題