问题标签 [incr-tcl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
397 浏览

class - 使用 Incr Tcl 的类对象的层次结构

我正在尝试实现类/子类对象的层次结构,例如:

这里的要点是能够在每个主类中声明具有相同名称的不同子类(并使其变量独立)。

(注意:我在这里谈论的是在执行期间创建的类对象的层次结构,而不是不同类的继承。)

对 Tcl 特有的一些高级方面(命名空间、范围......)不太熟悉,我尝试了以下代码:

在创建第二次出现时会产生错误SubClassB

我可能错过了关于类名称空间的一点,因为我不明白变量SubClassesList如何具有两个不同的范围,但“相同”的名称空间/名称(来自调试输出)。

我试图在该newSubClass方法中创建一个新的命名空间,但它没有解决问题和/或添加一些无法解决的变量命名空间错误......

任何想法执行这样的事情?

PS:出于与现有环境的兼容性原因,我使用 [incr Tcl] 在我的项目中实现类,但如果有人认为其他 OO 实现会更好/更容易,请告诉我......


编辑 :

通过使用namespace eval+在与对象名称对应的新命名空间namespace inscope中创建对象找到了解决方案:subClassmainClass

0 投票
1 回答
54 浏览

tcl - 调用 $this 与不调用的区别

$this使用Tcl8.5,在方法内部调用和不调用有区别吗?例如:

0 投票
1 回答
404 浏览

tcl - 更改 iwidgets::combobox 选定值 tcl/tk

如何更改iwidgets::comboboxtcl/tk 中的选定值?

我尝试了以下方法,但它不起作用。( set ::check_tech "bbb")

0 投票
1 回答
330 浏览

tcl - ::itcl::delete 抛出错误“无效的命令名称”

我正在使用 itcl delete 命令删除对象和类。但是,tcl 解释器说“无效的命令名”删除“。这是部分代码片段。

谢谢,博普

0 投票
1 回答
459 浏览

arrays - TCL 错误:无法设置“::streamID(1,10,1)”:变量不是数组

我已经阅读了线程,Cant read variable, isnt array,我认为可能以某种方式相关,但我不知道如何。在以下 TCL 片段中,测试了一个三维数组 ::stream 并读取了一个值。该数组包含一个标量 ID 值。片段中的最后一行创建了一个错误,上面写着

我将此解释为意味着 $nextId 不是标量,它不能放入标量的 3 维数组中。我对错误的解释不正确吗?我非常有信心该数组包含标量值,所以我开始认为这里可能存在一些数据安全问题。