3

期待送信スクリプトで配列をどのように初期化しますか? set Variable_name 値を使用して変数を初期化できます。同様に、expect-send スクリプトで配列を開始するにはどうすればよいですか?

4

2 に答える 2

2

Cのような数値インデックス付きリストのような配列ではなく、連想配列のような配列を意味していると思います。array set次のコマンドを使用します。

array set varname {key1 val1 key2 val2 key3 val3 ... ...}

中括弧の内容は Tcl によって評価されないため (つまり、expect によって)、必要に応じてきれいにすることができます。

array set varname {
    key1 val1
    key2 val2
    .... ....
}

配列要素を直接割り当てることもできます。

set varname(key1) val1
set varname(key2) val2
...
于 2013-07-09T09:37:15.513 に答える
1

変数の設定に使用される set とは異なり、動作array setが異なることに注意してください。

同じ tclsh で:

% array set a {key1 val1 key2 val2}
% parray a
a(key1) = val1
a(key2) = val2

#This will not delete the content of the array:
% array set a {}
% parray a
a(key1) = val1
a(key2) = val2

#This will add new key-value pair:
% array set a {key3 val3}
% parray a
a(key1) = val1
a(key2) = val2
a(key3) = val3

#Array keys are unique:
% array set a {key1 val1 key2 val2}
% parray a
a(key1) = val1
a(key2) = val2
a(key3) = val3

#To unset the entire array content:
array unset a *

#To unset the array:
array unset a
于 2013-07-09T12:10:33.473 に答える