首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tcl中的"return“命令。它能返回一个变量并打印出来吗?

Tcl中的"return“命令。它能返回一个变量并打印出来吗?
EN

Stack Overflow用户
提问于 2016-09-16 13:11:45
回答 1查看 180关注 0票数 0

"return“可以打印变量吗?

为了说明"uplevel“在Tcl8.6中的用法,我详细阐述了以下脚本,以帮助我理解"uplevel”的用法。

代码语言:javascript
复制
    set a goodbye

proc test {} {
    set a hello
    uplevel #0 {return $a}
}

test

这个例子基于我在wiki.tcl.tk上找到的这个脚本:

代码语言:javascript
复制
set x goodbye

apply {{} {
        set x hello 
        uplevel {return $x}
}}

但是当我执行它们时,它们都不会打印$x。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2016-09-16 22:52:53

return命令将返回值。它将打印任务留给puts或调用者。或者,您可以在过程的执行过程中使用leave跟踪来完成此操作:

代码语言:javascript
复制
proc test {args} {
    return "abc"
}
trace add execution test leave {apply {{cmd code result op} {
    puts "the result was '$result'"
}}}
test 123
#>>> the result was 'abc'
#abc

另外,不要使用uplevel return。结果会让你感到困惑。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39524089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档