相关疑难解决方法(0)

为什么在调用"set"时Tcl在变量名之前不使用美元符号?

我将在这里使用Perl作为比较:

$foo = 5;
print $foo;
Run Code Online (Sandbox Code Playgroud)

将变量设置$foo为5,然后打印变量的内容($foo始终作为访问的通知$foo).

在Tcl中:

set foo 5
puts $foo
Run Code Online (Sandbox Code Playgroud)

与Perl对应物做同样的事情.

为什么Tcl不用"$"设置变量,但需要"$"来访问变量?为什么程序也是如此(例如proc bar {spam eggs} {...})?对我来说,Tcl代码看起来像这样(在伪代码中):

"foo" = 5 # Setting a string?
puts $foo # "$foo" is not defined.
Run Code Online (Sandbox Code Playgroud)

(我的评论只反映了似乎正在发生的事情,而不是正在发生的事情).

我要补充的另一点是清晰度:

set foo foo
Run Code Online (Sandbox Code Playgroud)

是的,我可以随时做set foo "foo",但不是set $foo foo更一致吗?

据我所知,"foo"可以是变量或字符串,具体取决于具体情况,如我上一个例子(set foo foo= set var string)所示,但我没有得到这种语法(也许是因为我习惯了Python .. .)

syntax tcl

7
推荐指数
2
解决办法
1781
查看次数

标签 统计

syntax ×1

tcl ×1