我是TCL的初学者。我发现了一个这样的变量赋值:
set ::C0::B0::B1(A:input:signal) "P0"
我知道B1在B0的命名空间中,也就是在C0的命名空间中,B1是一个数组。我不明白的是sinxB1(A:input:signal)
?你能帮我吗?谢谢你。
数组元素名称是任意字符串,可以具有您和/或应用程序希望具有的任何内部结构。将圆括号放在元素名中可能在语法上有点尴尬,但这只是语法问题($
语法相对于Tcl的变量模型所支持的有一点限制);如果元素名本身取自一个变量,那么它实际上可以是任何东西。例如:
set foo "a(b)c"
set bar($foo) 123
您甚至可以使用空格或二进制数据作为元素名。
在您的示例中,数组名称为::C0::B0::B1
(如您所知,名称空间::C0::B0
中的B1
),元素名称为A:input:signal
;元素名称中的内部冒号对Tcl没有特殊意义,就像A
或input
一样。当然,查看该数组的其他代码可能对此有不同的想法。