0
我想從configbody返回,但不能在不導致變量未被設置的情況下顯式地返回。Itcl configbody的適當返回值
我想幫助理解我所看到的行爲。請考慮(使用Itcl 3.4)下面的代碼:
package require Itcl
catch {itcl::delete class Model}
itcl::class Model {
public variable filename "orig"
}
itcl::configbody Model::filename {
if 1 {
return ""
} else {
}
}
Model my_model
my_model configure -filename "newbie"
puts "I expect the result to be 'newbie:' [my_model cget -filename]"
當我返回空字符串,文件名沒有被設置爲新值。如果我不回來,但只是允許proc通過,文件名確實會改變。你可以通過在上面的代碼中將1更改爲0來看到這一點。
我懷疑它涉及到以下statement:
當在一個腳本沒有返回,它的價值是在腳本評估的最後一個命令的值。
如果有人會解釋這種行爲和我應該如何返回,我會很感激的幫助。