- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 incr Tcl 中的继承没有按预期工作。考虑下面的代码。
package require Itcl
::itcl::class Base \
{
public {
proc function { } { puts "==== Base::function" }
}
}
::itcl::class Derived { inherit Base }
Base::function
Derived::function ;# FAILS
最后一行失败了,所以 Base::function
没有从 Derived
继承,尽管 Derived
继承自 Base
.
我是做错了什么,还是incr Tcl被设计成这样?
最佳答案
阅读文档我不认为 itcl 类中的 proc 以您认为应该的方式工作:
proc name ?args? ?body? Declares a proc called name. A proc is an ordinary procedure within the class namespace. Unlike a method, a proc is invoked without referring to a specific object. When the proc body is executed, it will have automatic access only to common data members. If the args list is specified, it establishes the usage information for this proc. The body command can be used to redefine the proc body, but the args list must match this specification. Within the body of another class method or proc, a proc can be invoked like any other command-simply by using its name. In any other namespace context, the proc is invoked using a qualified name like "className::proc". Procs in a base class that are redefined in the current class, or hidden by another base class, can also be accessed via their qualified name.
我对此的解读是,proc 与它的类相关联,它可以在派生类中引用,但未在派生类中定义。例如以下作品:
package require Itcl
::itcl::class Base {
public {
proc function { } { puts "==== Base::function" }
}
}
::itcl::class Derived {
inherit Base
public {
proc function { } {
puts "==== Derived::function"
return [Base::function]
}
}
}
Base::function
Derived::function ;# FAILS
关于oop - [incr Tcl] 中的静态函数继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4756769/
我是 TCL 新手,正在努力访问其他模块。 SOURCE 命令帮助我包含了我在 TCL 程序中编写的其他代码。但是,我认为我在访问代码库时遇到了问题。 例如,当我引用一个数学函数时,找不到它。我认为在
我有两个 tcl 脚本。我想在第一个脚本完成后运行第二个脚本。我该怎么做? 最佳答案 取决于你的真正意思。 一种方法是编写第三个(“主”)脚本 source /the/path/to/the/firs
相比之下,使用 TCL C API 读取文件和填充 TCL 数组会快得多吗?对标准 TCL 做同样的事情。我有一个大约 100+MB 的大文件,我需要读取它并设置一些哈希条目。使用 TCL C API
相比之下,使用 TCL C API 读取文件和填充 TCL 数组会快得多吗?对标准 TCL 做同样的事情。我有一个大约 100+MB 的大文件,我需要读取它并设置一些哈希条目。使用 TCL C API
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 6年前关闭。 Improve thi
我有以下基本代码: proc test {} { set my_var2 3 foreach iter {1 2 3} { set my_var1 4
例如,在 Perl 中,要获取从 1 到 10 的连续数字数组,您可以简单地执行以下操作: @myArray = (1 .. 10); 这两个句点用作此操作的简写,而不是制作 for 循环或手动写出整
我有一个列表,我正在尝试修改它并根据我想要实现的目标制作一个新列表。 原始列表 $> set a {123.4:xyz 123.4:pqr 123.4:xyz 123.4:abc 123.4:mno}
在TCL中是否可以将参数的默认值作为函数调用的返回值? proc GetParameterValue { } { # calculation for value... return v
有些东西在说谎...... 请记住,当我手动运行脚本时,这会按预期工作,但当它通过任务调度程序运行时则不会。 我有一个 TCL 脚本,用于检查网络驱动器上是否存在文件,如果存在则将其删除。我通过以下方
如果不是,它是什么? 我读到的关于 TCL 的所有内容都指出,所有内容都只是其中的一个字符串。解释器内部可以有一些其他类型和结构(为了性能),但在 TCL 语言级别,一切都必须表现得像一个字符串。还是
我已经开发了一些代码,但我在 Linux 机器上遇到了 Tcl 解释器的错误标记问题。 #!/usr/bin/tclsh if {1} { puts "abc1" } elseif {} {
我需要一些帮助来定义数组以及在 TCL 中显示和循环它们。 这是我将如何在 php 中执行它们。 $date =array(); $size=0; $date[$size] =$pre_event_d
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be
谁能解释一下init.tcl有什么用? TCL 解释器实际上何时加载它? 该文件的描述如下 startup file for TCL . 但据我所知.tclshrc是启动文件。 谁能解释一下吗? 最佳
我试图通过在函数外部声明它来使用全局变量 (gpio_out_set_3)(因为该变量将来也可能在其他函数中使用)。在函数内部,我已将相同的变量声明为“global”并尝试通过“$gpio_out_s
我在 TCL 中有代码: set a 1 set b 0 set c "Start" if { $a == 1 && ($b == 1 || $c == "Start") } { puts W
我正在实习,实习要求我学习和练习 TCL - OO,所以我一直在寻找有关 TCL - OO 的教程、示例和书籍,但我找不到任何东西,所以如果有人可以的话,我将非常感激给我一些关于 TCL - OO 的
我试图通过在函数外部声明它来使用全局变量 (gpio_out_set_3)(因为该变量将来也可能在其他函数中使用)。在函数内部,我已将相同的变量声明为“global”并尝试通过“$gpio_out_s
如何通过键盘向 Tcl 脚本提供输入? C 中有类似 scanf() 的东西吗? 最佳答案 gets命令可能就是您想要的。 set data [gets stdin] # or set numchar
我是一名优秀的程序员,十分优秀!