如何在TCL中使用foreach创建两个元素的所有组合

时间:2013-01-07 20:03:07

标签: arrays list foreach tcl combinations

我想创建2的所有组合,但似乎没有效果。

我在这里错过了什么吗?

 foreach swt "$Agg1 $Agg2" {

      foreach acc "$Acc1 $Acc2 $Acc3" {

      Function (swt acc) {
      } 
    }
 }

我希望将Agg1 Acc1,Agg1 Acc2,Agg1 Acc3,Agg2 Acc1,Agg2 Acc2,Agg2 Acc3等所有组合传递给函数。

但它似乎无法使用上述代码。我能想到的另一种方法是创建6个代码块。

1 个答案:

答案 0 :(得分:3)

您正在插入不存在(可能)存在的变量。拿出美元符号。

foreach swt "Agg1 Agg2" {
    foreach acc "Acc1 Acc2 Acc3" {
        puts "$swt $acc"
    }
}

我也建议在那里使用花括号,尽管你可以使用引号。

foreach swt {Agg1 Agg2} {
    foreach acc {Acc1 Acc2 Acc3} {
        puts "$swt $acc"
    }
}