Tcl数组语法

时间:2014-05-23 11:12:50

标签: tcl

我在某个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 ++的语法高亮显示,如下所示:

screenshot showing syntax highlighting error

如果我将$map("$type")更改为$map( "$type"),那么就语法高亮而言,所有人都很满意:

screenshot showing correct syntax highlighting

然而,然后Tcl无法加载。这是一些遗留的Tcl,这个proc接近一个非常大的文件的开头,并且从这一点到文件末尾的所有语法突出显示都是错误的,所以它非常令人恼火。

是否有另一种方法可以重新编写数组访问权限,以便它仍然有效并且Notepad ++的语法突出显示会很高兴?

1 个答案:

答案 0 :(得分:2)

我使用Textpad,当我输入TCL文件时,你的proc对我来说很好。

你可以做的是删除$ type周围的双引号。他们不需要,即

变化

if {[info exists map("$type")]} {    
        set frame $map("$type")

if {[info exists map($type)]} {    
        set frame $map($type)