tcl代码中set something和set_something有什么区别

问题描述 投票:0回答:1

大家好,我想在这里问一个超级新手问题,因为我想完成我的工作,而不需要从头开始学习 tcl。我知道 set 是一个为变量赋值的命令。但是,我发现一个 tcl 代码在集合和变量之间使用下划线。 Ex set variable_x 1 和 set_variable_x 1。请解释一下不同之处。我怀疑带有下划线的那个(set_variable_x 1)是作为控制台的命令。

这里我有一个更好的例子

set charpoint chardir
create $charpoint

#Setup
set_log_file $charpoint/runTASK2.log
set_location  $charpoint 

#Copy configure.tcl into charpoint
exec cp configure.tcl ${charpoint}/config/configure.tcl

在这里你可以看到 set charpoint 有空格,而 set_log_file 没有空格,但 set 和 log_file 之间有下划线

console tcl
1个回答
0
投票

set
是一个标准 Tcl 命令,写入当前作用域中的变量(或者如果仅给出一个参数则从中读取,这是使用
$
的替代方法)。

set_something
是应用程序或库提供的命令。从标准 Tcl 的角度来看,它可以做任何事情,因为命令通常不受限制;您需要查看其他系统的文档以了解它的功能以及如何调用它。

有了这样的名字,我希望它们能在幕后设置某种变量(不一定在你可以直接观察的地方;有很多选项),但除此之外它们可能会做更多的事情;例如,如果

set_log_file
打开指定文件的追加模式通道,这一点也不奇怪。可以将这些东西映射到标准变量(也许需要
trace
的一些帮助),但应用程序/库的作者选择不这样做(或者只是不知道他们可以)。

© www.soinside.com 2019 - 2024. All rights reserved.