Tcl技巧与bug汇总(一)
missing close-brace
Question:
error: missing close-brace: possible unbalancd brace in comment
直译是缺少括号,一般来说检查一下括号是否匹配就可以。但Tcl中,被注释的括号有时也会被算入。如下:
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
语句注释掉。这种情况下就会报错。但神奇的是,如果被注释的括号不在其他括号内部就不会报错:
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
}
赞 (0)