TCL 中的反斜杠是什么意思?

发布于 2024-11-18 12:19:06 字数 184 浏览 2 评论 0原文

我有一个关于TCL中“\”的问题

我看到一段代码如下:

proc ::A::B {c \
             d \
             e \
             f 
}

参数列表中的这个“\”是什么意思?

谁能帮我解决这个问题吗?

I have a question about "\" in TCL

I see a piece of code as following:

proc ::A::B {c \
             d \
             e \
             f 
}

what does this "\" mean in the parameter list?

can anyone help me on this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

邮友 2024-11-25 12:19:06

正如语言定义中所述,

\<换行>空格

<块引用>

单个空格字符替换反斜杠、换行符以及换行符后面的所有空格和制表符。该反斜杠序列的独特之处在于,它在实际解析命令之前在单独的预传递中被替换。这意味着即使它出现在大括号之间,它也会被替换,并且如果它不在大括号或引号中,则生成的空格将被视为单词分隔符。

这意味着您的示例:

proc ::A::B {c \
             d \
             e \
             f 
}

完全等于此(注意间距):

proc ::A::B {c  d  e  f 
}

鉴于这将是对正常proc命令的无效调用,我怀疑您已经稍微修改一下你的示例代码。 :-)

As stated in the language definition,

\<newline>whiteSpace

A single space character replaces the backslash, newline, and all spaces and tabs after the newline. This backslash sequence is unique in that it is replaced in a separate pre-pass before the command is actually parsed. This means that it will be replaced even when it occurs between braces, and the resulting space will be treated as a word separator if it is not in braces or quotes.

This means that your sample:

proc ::A::B {c \
             d \
             e \
             f 
}

is exactly equivalent to this (note the spacing):

proc ::A::B {c  d  e  f 
}

Given that this would be an invalid call of the normal proc command, I suspect you've trimmed your sample code a bit. :-)

世界和平 2024-11-25 12:19:06

Tcl 中行尾的反斜杠 \ 表示行继续。因此,您的声明与: 完全相同

proc ::A::B {c d e f}

,只是它被分解为多个源代码行。

The backslash \ at the end of a line in Tcl indicates line continuation. So your statement is exactly the same as:

proc ::A::B {c d e f}

except it's broken up across more than one source line.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文