2009-09-23 70 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 

你可能會認爲這是比做這一切在同一行速度較慢,但​​不同的是,但在所有的時間最關鍵的情況下可以忽略不計,大概只有幾微秒的量級。