1

我有一个名为的本地宏peer_list,它包含 280 个不同的元素,所有这些元素都是字符串。我还有另一个名为 local 的宏,它包含 localused_list中包含的元素的子集peer_list

对于中的每个元素,peer_list我想测试该元素是否在本地used_list. 如果元素存在used_list我想丢弃它,否则我想执行另一组条件。

我曾尝试使用以下代码,但没有奏效:

foreach peer in local peer_list {
    if `:list peer in local used_list' {
        * commands I wish to execute
    }
    else {
        * commands I wish to execute
    }
}

我将不胜感激有关实现此目的的替代方法的任何建议。

4

1 回答 1

5

你没有说你的代码在什么意义上“没有工作”,你也没有提供一个可重现的例子。尽管如此,您似乎正在沿着正确的路线工作。

 local beasts frog toad newt unicorn griffin 
 local real frog toad newt 

 foreach b of local beasts { 
     if `: list b in real' { 
         di "`b' is real" 
     } 
    else di "`b' is fabulous" 
 } 

 frog is real
 toad is real
 newt is real
 unicorn is fabulous
 griffin is fabulous

类似代码的一个常见错误是在不同的语言环境中定义和使用本地宏,这样它们就不能互相看到。

一个更明显的错误是您需要关键字ofnot in。你拥有的是合法的,但不是你想要的。相比

foreach b in local beasts {
    di "`b'"
}

local
beasts
于 2014-06-27T16:25:38.897 回答