作者:炜一爱妮 | 来源:互联网 | 2023-05-21 11:29
当语句块很短时,我喜欢在多行中构造if {} {} elseif {} {},如下所示。
if {cond1} {do1}
elseif {cond2} {do2}
elseif {cond3} {do3}
但是TCL不允许我这样做。输入:无效的命令名称“ elseif”
当我将“ do”语句周围的花括号打开成多行时,它起作用了,但是看起来很丑。
if {cond1} {do1
} elseif {cond2} {do2
} elseif {cond3} {do3}
TCL阻止if在if之后的下一行识别elseif的基本问题是什么?
谢谢,格特
1> Peter Leweri..:
换行符终止当前命令。要使命令在下一行继续,必须对换行符进行转义或引用。
如果在换行符之前直接加一个反斜杠,则反斜杠,换行符以及按顺序跟随的所有制表符和空格将被单个空格字符代替。
if {cond1} {do1} \
elseif {cond2} {do2} \
elseif {cond3} {do3} \
else {do4}
如果换行符在大括号内,则没有语法功能。它只是用括号括起来并传递给命令的字符串中的另一个字符。当您需要将包含多个命令的脚本传递给一个if
命令时,这很有用:脚本将在命令中重新解释,并且这些换行符将在此处恢复其功能。
if {cond1} {do1
} elseif {cond2} {do2
} elseif {cond3} {do3
} else {do4}
典型的Tcl风格是使用如下脚本参数编写命令:
if {cond1} {
do1
} elseif {cond2} {
do2
} elseif {cond3} {
do3
} else {
do4
}
这种视觉风格并不符合每个人的喜好,但可以适应。
说明文件:Tcl