1

I want to assign an object to a reg variable, but I don't know if I could do it, and if yes, how can I do it, what is the syntax?

For example, I have a class 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   
  }

and an object:

 Var::var_

Can I assign an object var to the reg variable?

Something like that:

reg set var/var_ Var::var_
4

1 に答える 1

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
ツチブタ
@itcl ::var_ ::Var::mName
于 2012-04-24T12:31:32.037 に答える