TCL 中的冒号、数组和命名空间
Colon and array and namespace in TCL
我是TCL新手。
我找到了这样的变量赋值:
set ::C0::B0::B1(A:input:signal) "P0"
我知道B1在B0的namespace中,也就是在C0的namespace中,B1是一个数组。
我不明白的是语法 B1(A:input:signal)
?
你能阻止我吗?
非常感谢
数组元素名称是任意字符串,可以具有您and/or应用程序所具有的任何内部结构。在元素名称中放置括号在语法上可能有点笨拙,但这只是语法问题($
语法相对于 Tcl 的变量模型支持的内容有点限制);如果元素名称本身是从一个变量中获取的,那么它实际上可以是任何东西。例如:
set foo "a(b)c"
set bar($foo) 123
您甚至可以使用空格或二进制数据作为元素名称。
在您的例子中,数组名称是 ::C0::B0::B1
(如您所知,名称空间 ::C0::B0
中的 B1
),元素名称是 A:input:signal
;元素名称中的内部冒号对 Tcl 没有特殊意义,与 A
或 input
一样。当然,查看该数组的其他代码可能对此有不同的想法。
我是TCL新手。 我找到了这样的变量赋值:
set ::C0::B0::B1(A:input:signal) "P0"
我知道B1在B0的namespace中,也就是在C0的namespace中,B1是一个数组。
我不明白的是语法 B1(A:input:signal)
?
你能阻止我吗?
非常感谢
数组元素名称是任意字符串,可以具有您and/or应用程序所具有的任何内部结构。在元素名称中放置括号在语法上可能有点笨拙,但这只是语法问题($
语法相对于 Tcl 的变量模型支持的内容有点限制);如果元素名称本身是从一个变量中获取的,那么它实际上可以是任何东西。例如:
set foo "a(b)c"
set bar($foo) 123
您甚至可以使用空格或二进制数据作为元素名称。
在您的例子中,数组名称是 ::C0::B0::B1
(如您所知,名称空间 ::C0::B0
中的 B1
),元素名称是 A:input:signal
;元素名称中的内部冒号对 Tcl 没有特殊意义,与 A
或 input
一样。当然,查看该数组的其他代码可能对此有不同的想法。