tcl/tk中大括号与双引号分组的不同

tcl/tk中使用大括号{}和双引号“”进行分组,使其成为一个变元,但是有一个区别:大括号阻止在分组中出现替换操作,而后者允许这样做。

例如:

 

% set s Hello

Hello

% puts stdout "The length of $s is [string length $s]."

The length of Hello is 5.

% puts stdout {The length of $s is [string length $s].}

The length of $s is [string length $s].

%

 

双引号和花括号将多个单词组织成一个参数,也是一种替换操作。””和{}内的替换如何进行

呢?一般的原则是在" "内的替换正常进行,而在{}内的替换有可能会被阻止。 

对花括号内的替换操作可以概括为:如果花括号是用做替换操作,则它会阻止内部的嵌套替

换;如果花括号用做界限符,如过程定义时用做界限过程体时,不阻止替换操作,

其他还有 if条件语句、循环语句、switch语句和过程声明、数学表达式等。{}的作用比较特

殊,需要根据不同的情况区别处理。 

 

你可能感兴趣的:(String)