我在某个Tcl中有这个过程
proc AddType {type} {
set map (...code to create the map here...)
if {[info exists map("$type")]} {
set frame $map("$type")
} else {
set frame [MakeFrame]
}
}
正常工作。不幸的是,在它的中间有一些东西"打破" Notepad ++的语法高亮显示,如下所示:
如果我将$map("$type")
更改为$map( "$type")
,那么就语法高亮而言,所有人都很满意:
然而,然后Tcl无法加载。这是一些遗留的Tcl,这个proc接近一个非常大的文件的开头,并且从这一点到文件末尾的所有语法突出显示都是错误的,所以它非常令人恼火。
是否有另一种方法可以重新编写数组访问权限,以便它仍然有效并且Notepad ++的语法突出显示会很高兴?
答案 0 :(得分:2)
我使用Textpad,当我输入TCL文件时,你的proc对我来说很好。
你可以做的是删除$ type周围的双引号。他们不需要,即
变化
if {[info exists map("$type")]} {
set frame $map("$type")
到
if {[info exists map($type)]} {
set frame $map($type)