为什么TCL脚本中的数组大小不能由数组大小正确给定<;数组名称>;
这里我有一个由4个元素组成的数组,但它将值打印为11,那么大小是如何变为11而不是4的呢为什么TCL脚本中的数组大小不能由数组大小正确给定<;数组名称>;,tcl,Tcl,这里我有一个由4个元素组成的数组,但它将值打印为11,那么大小是如何变为11而不是4的呢 array set ipname {UART TEST SPI I2C} set bsize [array size ipname]; puts "$bsize" 数组集(在您的情况下,它只生成两个元素!)不会删除数组中的任何现有内容,以前数组中必须包含9到11个元素。如果我在裸tclsh中运行您的代码,它将打印2。如果我接着使用parray,它会告诉我它做了什么: % parray ipname ipn
array set ipname {UART TEST SPI I2C}
set bsize [array size ipname];
puts "$bsize"
数组集
(在您的情况下,它只生成两个元素!)不会删除数组中的任何现有内容,以前数组中必须包含9到11个元素。如果我在裸tclsh
中运行您的代码,它将打印2
。如果我接着使用parray
,它会告诉我它做了什么:
% parray ipname
ipname(SPI) = I2C
ipname(UART) = TEST
数组集
(在您的情况下,它只生成两个元素!)不会删除数组中的任何现有内容,以前数组中必须包含9到11个元素。如果我在裸tclsh
中运行您的代码,它将打印2
。如果我接着使用parray
,它会告诉我它做了什么:
% parray ipname
ipname(SPI) = I2C
ipname(UART) = TEST
一旦我们在一个数组中有4个元素,只有当它的大小增加时,它才会给出正确的大小??i、 e如果元素减少,它总是给出4,如果超过4,它会提供准确的结果?请尝试:
设置bsize[llength[array names ipname]]
一旦数组中有4个元素,只有当其大小增加时,它才会给出正确的大小??i、 e如果元素减少,则始终为4,如果超过4,则提供准确的结果?请尝试:set bsize[llength[array names ipname]]