将变量附加到tcl中的列表

时间:2017-04-10 16:16:11

标签: list append tcl

我有一个foreach循环执行一些处理并将变量附加到现有列表中,如下所示:

set lst_tmp [list];
foreach item $lst_entities {
  set lst_tmp $item;          #1
  set result [::somefunc $item];
  if {$result ne -1} {
    lappend lst_tmp $result;  #2
  }
}

proc ::somefunc {entityType} {
  if {$entityType eq ""} {
    return -1;
  } 
  if {$entityType in {mats props comps}} {
    return 1;
  }
  return 0;
}

问题是我的lst_tmp在#1时填充了$item,但在#2之后,lst_tmp值就像{item1 result}。它不会评估$result的值,并直接在列表中附加变量名称。

我还没有在tcl上工作过,所以我不确定我对lappend的使用是否是错误的。

有什么意见吗?

0 个答案:

没有答案