【问题标题】:Exit and Return in Proc TCLProc TCL中的退出和返回
【发布时间】:2015-12-03 13:36:26
【问题描述】:

我想知道 proc 中 Exit 和 Return 之间的区别。 我有一个包含很多 proc 的脚本,其中一个使用 exit 和一些值 ex:

proc someProc {code} {
    exit $code
}

还有一个是这样的:

proc multiply {value} {
    set number [expr {$value * 5}]
    return $number
}

退出是停止运行脚本还是有什么区别?

【问题讨论】:

    标签: return tcl exit proc


    【解决方案1】:

    exit 命令使当前的进程停止。之后正在运行的程序将消失(尽管包含代码的文件仍然存在)。它的可选参数是交给操作系统的错误代码;默认为零,表示完全没有错误。

    return 命令使当前的过程调用停止。可选参数提供了一种方式来说明调用过程的结果是什么;默认为空字符串(假设 Tcl 根本没有 NULL/null/nil/等)。

    在内部,exit 对“停止运行此程序”OS API 进行系统调用,return 抛出一个异常,通用过程管理代码将其转换为调用结果。

    【讨论】:

    • 如果我调用 multiply set a [multiply 5] 结果将是 25,如果我调用 someProc 是脚本退出还是只退出 proc?
    • @virusivv 如果您调用 someProc,整个脚本将退出,包括您可能正在运行的任何交互式 shell。
    猜你喜欢
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多