2012-04-24 80 views
1

我想分配一個對象到一個reg變量,但我不知道我是否可以這樣做,如果是的話,我該怎麼做,語法是什麼?Tcl我可以指定一個對象來註冊變量嗎?

例如, 我有一個類Var

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_ 

我可以分配一個對象VAR到REG變量?

類似的東西:

reg set var/var_ Var::var_ 
+0

什麼是「REG」的意思是在這方面?也許是「正規」? – 2012-04-24 12:29:34

+0

註冊意味着「註冊表」 – 2012-04-24 14:10:15

回答

2

可以存儲任何變量的[增量的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變量,cos當我保存數據庫時,我也保存reg變量,當我使數據庫負載時,我想獲得我創建的所有對象。 – 2012-04-24 14:21:40

相關問題