如何在TCL代码中查找错误
我正在学习TCL,想知道如何找出代码中的错误。我的意思是什么行没有错误发生,或者我如何调试它 以下是我正在尝试的代码:如何在TCL代码中查找错误,tcl,syntax-error,Tcl,Syntax Error,我正在学习TCL,想知道如何找出代码中的错误。我的意思是什么行没有错误发生,或者我如何调试它 以下是我正在尝试的代码: proc ldelete {list value}{ set ix [lsearch -exact $list $value] if{$ix >=0}{ return [lreplace $list $ix $ix] } else { return $list } } 以下是我得到的错误: extra c
proc ldelete {list value}{
set ix [lsearch -exact $list $value]
if{$ix >=0}{
return [lreplace $list $ix $ix]
} else {
return $list
}
}
以下是我得到的错误:
extra characters after close-brace
我会感谢你的帮助
谢谢
再见这里需要一个空间
proc ldelete{list value}{
proc ldelete{list value}{
这里呢
如果{$ix>=0}{
如果{$ix>=0}{
如果这样运行:
tcl foo.tcl
然后,您应该会收到一条错误消息,告诉您错误在第1行。(问题是闭合大括号和开放大括号之间缺少空间。)
作为一般规则,如果您以交互方式工作,则通常会在errorInfo中找到有用的消息(例如堆栈跟踪),因此这通常很有用:
%put$errorInfo
我使用一个名为“frink”的静态检查器。用谷歌搜索它,你就会找到它
puts $::errorInfo
更新:
是的,frink发现了许多我遗漏的错误。请让我试试。尝试查看全局变量的内容
errorInfo
puts $::errorInfo
相关文档链接:和如果您购买了ActiveState销售的Tcl开发工具包的副本,它包括一个名为“tclchecker”的工具,用于检查各种可能的问题
除了frink之外,还有一个免费的替代工具,名为。它提供了各种静态检查。在
if
和条件之间也有一个空格。您好,谢谢您的建议,但是您是否使用frink查找Tcl中的错误请记住,Tcl中的所有命令都是这样的:命令字…
其中单词是separ这就是为什么大括号周围的空格(将事物分组成单词)至关重要的原因。在谷歌搜索“大括号后面的额外字符”时,该页面首先出现: