0
ここでは4要素の配列を持っていますが、11の値を出力するので、サイズは4の代わりに11になります。TCLスクリプトの配列のサイズが配列のサイズによって正しく与えられないのはなぜですか?<array_name>
array set ipname {UART TEST SPI I2C}
set bsize [array size ipname];
puts "$bsize"
ここでは4要素の配列を持っていますが、11の値を出力するので、サイズは4の代わりに11になります。TCLスクリプトの配列のサイズが配列のサイズによって正しく与えられないのはなぜですか?<array_name>
array set ipname {UART TEST SPI I2C}
set bsize [array size ipname];
puts "$bsize"
(のみあなたのケースで要素になります!)array set
が以前それで9と11の要素の間で持っていたしなければならない配列、のいずれかの既存の内容は削除されません。あなたのコードを裸のtclsh
で実行すると、2
が出力されます。私はその後、parray
をフォローアップした場合、それが何をしたか私に語った:
% parray ipname
ipname(SPI) = I2C
ipname(UART) = TEST
我々は、アレイ内の4つの要素を持っていたら、それは、そのサイズが増加した場合にのみ、正しいサイズを与えるだろう??要素が減少する場合は常に4を与え、4以上の場合は正確な結果を返します。 – Anjaneyulu
Try: 'set bsize [llength [配列名ipname]]' –