在tcl中打印多个变量
我必须像这样在一个在tcl中打印多个变量,tcl,puts,Tcl,Puts,我必须像这样在一个文件中打印多个变量 puts "$n1_$n2_$n3_$n4" 其中,n1,n2,n3,n4是4个变量 它不会打印,并将显示错误n1\u1:没有这样的变量 预期输出应该是这样的(示例) 其他两种方式: puts "${n1}_${n2}_${n3}_${n4}" puts [format "%s_%s_%s_%s" $n1 $n2 $n3 $n4] 文件: (注意:Jerry回答中提到的“Hoodiecrow”是我,我在前面使用了nick。)Tcl中的变量名可以是Tcl
文件中打印多个变量
puts "$n1_$n2_$n3_$n4"
其中,n1
,n2
,n3
,n4
是4个变量
它不会打印,并将显示错误n1\u1:没有这样的变量
预期输出应该是这样的(示例)
其他两种方式:
puts "${n1}_${n2}_${n3}_${n4}"
puts [format "%s_%s_%s_%s" $n1 $n2 $n3 $n4]
文件:
(注意:Jerry回答中提到的“Hoodiecrow”是我,我在前面使用了nick。)Tcl中的变量名可以是Tcl中的任何字符串,没有任何限制,但如果您想使用特殊字符(那些不在a-z
、0-9
和
范围内的字母,以及不同语言的字母,具体取决于平台和语言环境),您必须要么用括号括住表达式名称,要么使用其他变通方法(如Hoodiecrow的答案)
这意味着,如果您有一个名为abc.d
的变量,并且使用$abc.d
,Tcl引擎将尝试查找该变量$abc
,因为
不是“正常”字符
但是,如果您有一个名为abc
的变量并使用$abc
或$abc\u d
,则引擎将开始查找变量abc
或abc\u d
,而不是abc
因此,必须在变量名之间使用大括号,例如:
${n1}
加反斜杠之所以有效,是因为\
不是一个“正常”字符,读了上面的内容后,事情的运行方式应该更为明显
还有一些东西可以用变量名表示,它们不需要支撑,但仍然有意义,只是有些东西是“特殊的”:
:
:这通常用于范围界定目的。例如,如果您有一个名为my_var
的全局变量,您也可以使用$::my_var
引用它。此处:
告诉Tclmy_var
是一个全局变量。请注意,如果一行中有两个以上的:
,它们将不会添加向上:
% set ::y 5
5
% set ::::y
5
% set :::y
5
::
通常用于定义变量所在的命名空间。例如,$mine::var
是命名空间中名为var
的变量,其名称为mine
()
:这些用于数组。$arr(key)
是一个包含两部分的变量:数组名arr
和键名key
。注意:可以有一个名为
的数组和一个名为
的键,因为
% set () abc
abc
% puts $()
abc
% array get ""
{} abc
可能还有一些,但这些是你可以注意的基础。明白了:我试着在每个
之前放\并且成功了。就像这样:放“$n1\\u$n2\\u$n3\\u$n4
% set () abc
abc
% puts $()
abc
% array get ""
{} abc