调用$ this之间的区别

时间:2014-02-26 07:30:22

标签: tcl incr-tcl

使用Tcl8.5,在方法中调用$this而不是调用它之间有区别吗?例如:

package require Itcl
namespace import itcl::*

class MyCls {
    method foo {}
    method bar {}
}

body MyCls::bar {} { return "hi" }

body MyCls::foo {} {
  puts [$this bar]
  # OR
  puts [bar]
}

1 个答案:

答案 0 :(得分:0)

您只需添加一个bar的全局实现即可试用。如下图所示 - 没有区别。该类只是在进入全局命名空间之前添加了另一个要检查过程的级别。

% package require Itcl
% namespace import itcl::*
% class C {method foo {}; method bar {}}
% body C::bar {} {return "C::bar"}
% body C::foo {} { puts [$this bar]; puts [bar] }
% C c
c
% c foo
C::bar
C::bar
%