Tcl代码中的旁路退出
让我们假设我有proc foo。程序代码为:Tcl代码中的旁路退出,tcl,exit,Tcl,Exit,让我们假设我有proc foo。程序代码为: proc foo { argy } { if { $argy == 1 } { exit 1 } } 我想调用foo,但让调用代码绕过/忽略exit命令,而不是退出TCL。即:此代码: foo 1 puts "bar" 应产生: >bar 有什么想法吗?谢谢。使用rename覆盖默认行为 rename exit _exit proc exit {{status ""}} {} 在代码中第一次出现exit命令之前,保留上述代码。i、
proc foo { argy } {
if { $argy == 1 } { exit 1 }
}
我想调用foo,但让调用代码绕过/忽略exit命令,而不是退出TCL。即:此代码:
foo 1
puts "bar"
应产生:
>bar
有什么想法吗?
谢谢。使用
rename
覆盖默认行为
rename exit _exit
proc exit {{status ""}} {}
在代码中第一次出现exit命令之前,保留上述代码。i、 e.即使在代码开始时,也要使用此虚拟
退出过程替换退出
使用重命名
覆盖默认行为
rename exit _exit
proc exit {{status ""}} {}
在代码中第一次出现exit命令之前,保留上述代码。i、 e.即使在代码开始时,也要使用此虚拟退出过程替换退出
可能会使假退出
do返回
?@DonalFellows:因为OP只是想绕过退出
,所以我做了空定义,从而使它毫无意义。如果需要,可能可以添加return
。新的exit
proc的主体将是return-code return
,因此它的行为就像return
命令。很抱歉,我没有回答这个问题,{status”“}做什么?我从未见过这样的代码样式……这是一个默认参数。Status是第一个参数带,emit th string是默认值。可能会使假exit
doreturn
?@DonalFellows:由于OP只是想绕过exit
,所以我创建了空定义,从而使其毫无意义。如果需要,可能可以添加return
。新的exit
proc的主体将是return-code return
,因此它的行为就像return
命令。很抱歉,我没有回答这个问题,{status”“}做什么?我从未见过这样的代码样式……这是一个默认参数。状态是第一个参数带,并发出TH字符串是默认值。如果Dinesh的答案解决了你的问题,考虑接受答案,向其他读者表明它是有用的。如果Dinesh的答案解决了你的问题,考虑接受答案,向其他读者表明它是有用的。