tcl命令的大括号和双引号之间有什么区别

tcl命令的大括号和双引号之间有什么区别,tcl,Tcl,在tcl命令中使用双引号而不是大括号时有什么不同。例如: regsub "$something" $var1 "$something2" var1 vs 但问题并不局限于regsub。即使在使用set赋值给变量时,我也看不出有什么区别 双引号和大括号用于将单词组合成一个参数。双引号和大括号之间的区别在于引号允许在组中发生替换,而大括号阻止替换。此规则适用于命令、变量和反斜杠替换 使用双引号和大括号分组 set s Hello => Hello puts stdout "The lengt

在tcl命令中使用双引号而不是大括号时有什么不同。例如:

regsub "$something" $var1 "$something2" var1
vs


但问题并不局限于regsub。即使在使用set赋值给变量时,我也看不出有什么区别

双引号和大括号用于将单词组合成一个参数。双引号和大括号之间的区别在于引号允许在组中发生替换,而大括号阻止替换。此规则适用于命令、变量和反斜杠替换

使用双引号和大括号分组

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].
这里,Tcl解释器对puts的第二个参数进行变量和命令替换。在第三个命令中,禁止替换,因此字符串按原样打印

在实践中,当参数的替换必须推迟到以后或根本不进行时,使用大括号分组。示例包括循环、条件语句和过程声明。双引号在前面显示的puts命令等简单情况下非常有用


引用:

双引号和大括号用于将单词组合成一个参数。双引号和大括号之间的区别在于引号允许在组中发生替换,而大括号阻止替换。此规则适用于命令、变量和反斜杠替换

使用双引号和大括号分组

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].
这里,Tcl解释器对puts的第二个参数进行变量和命令替换。在第三个命令中,禁止替换,因此字符串按原样打印

在实践中,当参数的替换必须推迟到以后或根本不进行时,使用大括号分组。示例包括循环、条件语句和过程声明。双引号在前面显示的puts命令等简单情况下非常有用


参考资料:

在大多数情况下,和{}之间的区别是明确的,但在表面之下,事情可能与您预期的不同。 例如,引号之间的花括号没有特殊含义

如果你写:

set x "hello"
puts "{$x}"
您将获得:

"{hello}"

因此,使用大括号和引号时要小心

您可以在以下网址找到关于Tcl的详细说明:

在大多数情况下,和{}之间的区别是明确的,但从表面上看,事情可能与您预期的不同。 例如,引号之间的花括号没有特殊含义

如果你写:

set x "hello"
puts "{$x}"
您将获得:

"{hello}"

因此,使用大括号和引号时要小心

您可以在以下网址找到关于Tcl的详细说明:

本教程对此进行了解释;请参见,教程中对此进行了解释;看到和