【发布时间】:2018-03-02 19:52:16
【问题描述】:
对设置变量的 Tcl 过程的调用似乎打印正在设置的值。
% proc a { } { set b "I don't want that!" }
% a
I don't want that!
如何预防?
【问题讨论】:
标签: tcl
对设置变量的 Tcl 过程的调用似乎打印正在设置的值。
% proc a { } { set b "I don't want that!" }
% a
I don't want that!
如何预防?
【问题讨论】:
标签: tcl
只需添加一个裸露的return:
% proc a { } { set b "I don't want that!" ; return }
请注意,相关代码实际上并未打印该值。 set 命令返回值,a 命令返回其最后执行的命令的值。如果您在交互式 tclsh* 会话中运行 a 命令,则在下一个提示符之前打印返回值,但如果您在脚本中以非交互方式执行 a,则不会打印。
*) 或类似的,如 tkcon。
【讨论】:
; list 一个set 命令:裸list 返回一个空字符串,使得交互式shell 不打印它返回的值——而“阴影”set 命令的执行结果。