Tcl技巧與bug彙總(一)

missing close-brace

Question:code

error: missing close-brace: possible unbalancd brace in commentio

直譯是缺乏括號,通常來講檢查一下括號是否匹配就能夠。但Tcl中,被註釋的括號有時也會被算入。以下:class

set namelist1 [list a b c d e]
set namelist2 [list 1 2 3 4 5]
foreach name $namelist1 {
#foreach name $namelist2 {
    puts -nonewline $name
}

在這段程序中,我更換了須要遍歷的列表,因此將以前的foreach語句註釋掉。這種狀況下就會報錯。但神奇的是,若是被註釋的括號不在其餘括號內部就不會報錯:foreach

set namelist1 [list a b c d e]
set namelist2 [list 1 2 3 4 5]
#foreach name $namelist2 {
foreach name $namelist1 {
    puts -nonewline $name
}

Solution:遍歷

建議直接將註釋刪掉,再或者在註釋中也保持括號匹配。以下,註釋末尾增長一個}就不會報錯。程序

set namelist1 [list a b c d e]
set namelist2 [list 1 2 3 4 5]
foreach name $namelist1 {
#foreach name $namelist2 {}
    puts -nonewline $name
}
相關文章
相關標籤/搜索