我有一个名为peer_list
的本地宏,它包含280个不同的元素,所有元素都是字符串。我还有另一个名为used_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
}
}
对于完成此任务的其他方法,我将不胜感激。
答案 0 :(得分: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
类似代码的常见错误是在不同的语言环境中定义和使用本地宏,以便它们无法相互看到。
更明显的错误是您需要关键字of
而不是in
。你拥有的是合法的,但不是你想要的。比较
foreach b in local beasts {
di "`b'"
}
local
beasts