我想将一个对象分配给reg变量,但我不知道我是否可以做到,如果是,我该怎么做,语法是什么?
例如我有一个班级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_
我可以将对象变量分配给 reg 变量吗?
像这样:
reg set var/var_ Var::var_
您可以将 [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_一个土豚@itcl ::var_ ::变量::mName