gpt4 book ai didi

TCL 在新线上使用 elseif

转载 作者:行者123 更新时间:2023-12-02 04:23:33 26 4
gpt4 key购买 nike

当语句 block 相当短时,我喜欢在多行中构造 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 后下一行的 elseif 的根本问题是什么?

谢谢,格特

最佳答案

换行符终止当前命令。要让命令在下一行继续,必须转义或引用换行符。

如果换行符直接前面有一个反斜杠,则反斜杠、换行符以及按顺序跟随的所有制表符和空格将被替换为单个空格字符。

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

关于TCL 在新线上使用 elseif,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28615566/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com