TCL手册页中的以下声明让我对TCL阵列感到困惑:
$ name(index)Name给出数组变量的名称,索引给出 该数组中元素的名称。名称必须仅包含 字母,数字,下划线和命名空间分隔符, ,可能是 一个空字符串 。
我想知道数组名是一个空字符串吗?
以下是我的实验:
% set a ""
% set ${a}(1) 100
can't set "(1)": variable isn't array
% set (1) 100
can't set "(1)": variable isn't array
% set $a(1) 100
can't read "a(1)": variable isn't array
% set {}(1) 100
extra characters after close-brace
你能告诉我如何创建一个名为空字符串的数组吗?
答案 0 :(得分:1)
看起来您已经将带有空名称的变量设置为某个值。你有错误,因为变量存在而且不是数组。使用:
unset -nocomplain ""
set (foo) bar
或
unset -nocomplain ""
array set "" [list foo bar]