2016-11-20 8 views
1

TCLのmanページで次の文は、TCL配列について私を困惑:どのように配列名を空の文字列にすることができますか?

$名(インデックス)の名前は、配列変数の名前を与え、インデックスが その配列内の要素の名前を与えます。名前には、 文字、数字、アンダースコア、および名前空間の区切り文字、のみを含める必要があります。 空の文字列です。

どのように配列名が空の文字列になるのだろうか?ここで

は私の実験である:

% 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

空の名前は有効ですが、私たちができれば、我々は時間を巻き戻して、それはそうではない作ると思います。私たちがこの事件を考えたときには、それは野生で使用されていただけです。だから代わりに私達はそれを文書化しました... –

答えて

1

すでに空の名前の変数に値を設定しているようです。変数が存在し、配列ではないので、エラーが発生します。用途:

unset -nocomplain "" 
set (foo) bar 

または

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

そして、完全性のために、 'puts $(foo)' –

関連する問題