我正在尝试使用以下代码创建矩阵:
package require struct::matrix
::struct::matrix GUI_TABLE
set NEW_LINE [list Data0 Data1 Data2 Data3 Data4]
GUI_TABLE add columns [llength $NEW_LINE]
GUI_TABLE add row $NEW_LINE
set NEW_LINE [list Data5 Data6 Data7 Data8 Data9]
GUI_TABLE add row $NEW_LINE
GUI_TABLE format 2chan
但是问题是,每次添加一行时,我都会收到以下警告:
// Warning: can't unset "colw(0)": no such element in array
// Warning: can't unset "colw(1)": no such element in array
// Warning: can't unset "colw(2)": no such element in array
// Warning: can't unset "colw(3)": no such element in array
// Warning: can't unset "colw(4)": no such element in array
消除我可以找到的警告的唯一方法是通过对每列执行columnwidth命令,如果矩阵很大,这会使代码非常慢。我不知道为什么收到警告,是否还有更好的方法可以消除警告?任何帮助将不胜感激。
答案 0 :(得分:0)
感谢Mrcalvin和Glenn Jackman的支持和指导,以找出问题的根本原因。这是摘要: -struc :: matrix的代码使用catch命令来摆脱警告/错误,就像我遇到的警告/错误一样。 -问题是我使用的EDA工具重新定义了catch命令,并显示了原始代码中故意掩盖的警告/错误。 -解决方案是使用EDA工具提供的特殊catch命令,以在添加新行时掩盖警告。像这样:
package require struct::matrix
::struct::matrix GUI_TABLE
set NEW_LINE [list Data0 Data1 Data2 Data3 Data4]
GUI_TABLE add columns [llength $NEW_LINE]
catch_special { GUI_TABLE add row $NEW_LINE}
set NEW_LINE [list Data5 Data6 Data7 Data8 Data9]
catch_special { GUI_TABLE add row $NEW_LINE }