比较两个不同本地宏的元素 [英] Comparing elements of two different local macros

查看:11
本文介绍了比较两个不同本地宏的元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个名为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
    }
}

如果有任何关于实现这一目标的替代方法的建议,我将不胜感激。

推荐答案

您没有说明您的代码在什么意义上"不工作",也没有提供可重复使用的示例。然而,你似乎在沿着正确的路线工作。

 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

这篇关于比较两个不同本地宏的元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆