incr Tcl 我可以将一个对象分配给 reg 变量吗?



我想将一个对象分配给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

最新更新