0

我想在满足条件的豁免文件(fh)中打印某些 vdd 和接地并在豁免文件中打印。

*set matrix_waiver($pwr_name,$gnd_name) 1
if { [info exists matrix_waiver] } {
      foreach power $pwr_name {
          if { [info exists matrix_waiver($power) ] } {
              lappend matrix_waiver $fh_waiver
          }
      }
      foreach ground $gnd_name {
          if { [info exists matrix_waiver($ground) ] } {
              lappend matrix_waiver $fh_waiver
          }
      }
  }*

没有得到想要的输出..上面代码中的错误是什么?

4

1 回答 1

1

您的问题是您将变量 ( matrix_waiver) 用作简单变量和关联数组。那是行不通的(好吧,除非变量unset介于两者之间,否则我认为您不想这样做)。这两者在 Tcl 中是根本不同的(它们是两种主要的变量类型;第三种是链接,用于实现globalupvar您通常可以忽略它)。

如果实际数据(您没有向我们展示)是一个简单的变量,其中仍然可能包含复杂的结构,例如列表和字典,那么您将不得不使用lindexandlset等等lappend来处理它.

如果实际数据是关联数组,则需要在执行时提供正确的元素名称lappend,依此类推。

于 2021-07-19T14:25:02.823 回答