Tcl “的不同用法是什么?”&引用;和{}

Tcl “的不同用法是什么?”&引用;和{},tcl,Tcl,当我想实施我自己的程序时,我有一个疑问。例如,以下是确定的: % proc + {a b} {expr $a+$b} % + 3 4 7 但是当我们使用“”而不是{}时: % proc + "a b" "expr $a+$b" 它将给出以下错误: can't read "a": no such variable 在我们使用\的同时,它给出了一个答案: % proc + "a b" "expr \$a+\$b" 在这里,\n不将$视为特殊字符,那么它将作为$a,并且它看起来与第二个示例相同

当我想实施我自己的程序时,我有一个疑问。例如,以下是确定的:

% proc + {a b} {expr $a+$b}
% + 3 4
7
但是当我们使用“”而不是{}时:

% proc + "a b" "expr $a+$b"
它将给出以下错误:

can't read "a": no such variable
在我们使用\的同时,它给出了一个答案:

% proc + "a b" "expr \$a+\$b"

在这里,\n不将$视为特殊字符,那么它将作为$a,并且它看起来与第二个示例相同。有谁能告诉我这三种定义过程的方法之间的区别吗?

引号和大括号之间的根本区别是变量在引号内展开,而不是在大括号内展开。在最后一个示例中,当您在美元符号前面放置反斜杠时,它会删除美元符号的特殊性质,因此变量最初不会展开


这一切都在报纸上解释过了。这一页对语言的描述非常简洁和准确

我对这与数字证书的关系有点模糊…看,和