2009-09-23 34 views
3

我想在一个命令中有一个注释,看起来这是不可能的,因为'#'字符在Tcl 8.4中定义为:任何方式在Tcl命令中嵌入评论?

如果一个哈希字符(``#'')出现在Tcl期望命令的第一个单词的第一个字符的地方,那么哈希字符及其后面的字符(通过下一个换行符)将被视为注释并被忽略。注释字符只有在命令开始时才有意义。

想象一下这是如何可能的工作(没有这些意见,在我的实验工作的)这个例子:

array set myArray [list red 3  \ 
         blue 4  ;# Blue is before purple. 
         purple 5  # Purple is after red. 
         green 7  \ 
         yellow 8] 

似乎棘手的问题是如何继续嵌有评论list命令?也许像这里的/ *嵌入式注释的C++风格。 * /但我只看到#在Tcl中用于注释行结束,没有开始和结束注释语法。

回答

6

不,您不能在命令的调用中嵌入注释。 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 

你可能会认为这是比做这一切在同一行速度较慢,但​​不同的是,但在所有的时间最关键的情况下可以忽略不计,大概只有几微秒的量级。