如果从另一个proc调用该变量,为什么该变量不可见?
package require itcl
itcl::class foo {
protected variable _name
proc constructor {} {
set _name Juan
}
proc name {} {
return $_name
}
proc name2 {} {
return [name]
}
}
set bar [foo ::#auto]
puts [$bar name]
puts [$bar name2]
输出:
Juan
can't read "_name": no such variable
答案 0 :(得分:0)
我并不完全熟悉incrTcl,但我认为你根本不使用proc
。构造函数应该是
constructor {} {
set _name Juan
}
并使用method
关键字
method name {} {
return $_name
}
method name2 {} {
return [name]
}
然后
% set bar [foo ::#auto]
::foo0
% puts [$bar name]
Juan
% puts [$bar name2]
Juan