如何從proc返回到更高的上下文?
例如:如果proc X調用另一個稱爲第三個proc Z的進程Y,是否有一種方法可以從Z直接返回到X?TCL:返回更高一級?
3
A
回答
9
從8.5開始,是的。該return
命令有一個-level
選項其用於做到這一點:
return -level 2 $someValue
因此,例如:
proc X {} {
puts "X - in"
Y
puts "X - out"
}
proc Y {} {
puts "Y - in"
Z
puts "Y - out"
}
proc Z {} {
puts "Z - in"
return -level 2 "some value"
puts "Z - out"
}
X
產生以下輸出:
X - in
Y - in
Z - in
X - out
注意,這樣做減少了Z
的可重用性,但這是你的業務。
0
相關問題
- 1. Azure標準爲高級版,並返回
- 2. 如何在ReST中返回更高的嵌套級別?
- 3. 在python中返回低級函數的高級函數?
- 4. TCL過程中返回和返回1之間的區別
- 5. 擁有更高效的代碼返回
- 6. 更高或更低級別?
- 7. 通過更高一級的結構
- 8. 從C++函數返回一個char數組到tcl
- 9. 是否有可能創建一個Tcl返回值的GUI?
- 10. 提高返回CommandEventArgs
- 11. 高級NSOperations,GroupOperation的回調
- 12. 函數返回一個char(初級)
- 13. PHP擴展一級文件夾返回
- 14. Sum函數只返回一個層級
- 15. UITableViewCell設置更高時返回44px高度
- 16. 在「高級更新\安裝」
- 17. 高級SQL更新問題
- 18. 高級自定義字段保持返回相同的值
- 19. 高級索引正在返回錯誤形狀的數組
- 20. 高級自定義字段不返回結果
- 21. asp.net高級搜索表單,結果在一個網格和返回按鈕
- 22. 返回根目錄和最高級別父級的分層列表
- 23. 返回班級內的私人班級
- 24. 級聯DropDown不返回值
- 25. 如何去'返回'2級?
- 26. 班級類型返回
- 27. Flux級聯不返回
- 28. _controlfp_s返回高32位?
- 29. 返回最高值java
- 30. 升級到Tcl 8.6後LabWindows內置的Tcl內建C擴展
我一直使用'uplevel 1 [list return $ some_value]'來做到這一點,即使在老版本的tcl上也能正常工作。 – slebetman 2010-08-17 22:21:54
@slebetman:你有沒有用上面這個簡單的線束檢查過?因爲當我這樣做時,它也會打印出「Y-out」,表明它沒有做你希望的事情...... – 2010-08-18 08:02:26