TCL 在 _@_ 缺少操作员

TCL missing operator at _@_

所以我遇到了以下问题我应该摆脱以下 lsearch

if {[lsearch -inline ${:edges} $m$n] ne ""}

我应该用 in/ni

替换它

但是当我尝试这样做时:

if {$m$n in ${:edges} ne ""} 

我收到以下错误消息:

missing operator at _@_
in expression "$m_@_$n in ${:edges} ne """

这应该不是最大的问题,但我仍然无法弄清楚 - 因为我对 tcl 和一般编程还很陌生。

感谢您的帮助

BR

表达式,与一般的 Tcl 不同,不是 那样连接字符串。相反,他们寻找运算符等(并且 _@_ 标记 其中 表达式解析器正在寻找运算符,以防您需要被告知)。这是一种权衡,以确保事物在语法上保持明确,但我不太记得强制它的确切情况。

虽然有一个简单的解决方法;在要连接的内容周围加上双引号,如下所示:

if {"$m$n" in ${:edges}} 

(您可能也不想将 ineq 链接在一起;这是 合法的, 但不太可能按照您的意愿行事。)