数组名如何为空字符串?

时间:2016-11-20 02:46:57

标签: tcl

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

你能告诉我如何创建一个名为空字符串的数组吗?

1 个答案:

答案 0 :(得分:1)

看起来您已经将带有空名称的变量设置为某个值。你有错误,因为变量存在而且不是数组。使用:

unset -nocomplain ""
set (foo) bar

unset -nocomplain ""
array set "" [list foo bar]