我希望在命令中有一个注释,看起来这是不可能的,因为在Tcl 8.4中定义的'#'字符是:
如果散列字符("#")出现在Tcl期望命令的第一个单词的第一个字符的位置,那么散列字符及其后面的字符,直到下一个换行符,被视为评论并被忽略.注释字符仅在命令开头出现时才有意义.
想象一下这个如何工作的例子(这些评论在我的实验中都没有奏效):
array set myArray [list red 3 \
blue 4 ;# Blue is before purple.
purple 5 # Purple is after red.
green 7 \
yellow 8]
Run Code Online (Sandbox Code Playgroud)
似乎棘手的部分是如何在嵌入注释的情况下继续列表命令?也许类似C++风格的/*Embedded评论.*/但我只看到#在Tcl中用于注释到行尾,没有用于开始和结束注释语法.
不,你不能在命令的调用中嵌入注释.Tcl中的注释与其他语言中的注释完全不同.有些人偶然发现了这一点,大多数有经验的Tcl程序员都没有考虑过.
您真正需要这样做的极少数情况下,您通常可以轻松地解决它.使用你的例子:
set myArray(red) 3
set myArray(blue) 4 ;# Blue is before purple
set myArray(purple) 5 ;# Purple is after red
set myArray(green) 7
set myArray(yellow) 8
Run Code Online (Sandbox Code Playgroud)
您可能认为这比在一条线上完成所有操作要慢,但除了最关键时间的情况之外,差异可以忽略不计,可能只有几微秒.