从本地宏列表findname创建一个变量列表

问题描述

我想在命令中使用本地宏中的变量列表,例如:

    local a int1 int2 num1 num2 bin1 bin2 ...
    local b int3 int4 bin3 num3  ...

这里的变量 num* int*bin* 分别是数字、整数和二进制。

我想对局部 foreachb' 中的变量运行 a' and 循环,但仅限于整数值的变量,即 int1,int2,int3,...>

为此,我使用 Nick Cox 创建的 findname 命令来查找整数值的变量,将相应变量名称的列表保存在本地宏中。但我不想为数据集中的所有变量运行它,而只想为变量的子集(在局部变量 ab 等中指定)运行它,然后在后续命令中使用该列表.

因此,对于本地 a' and b' 是本地 a_int' and b_int' 中的整数变量列表,我想使用如下:

    foreach var of varlist `a_int' `b_int'{
        whatever command
    }

解决方法

如果我理解正确,您需要存储在本地宏中的两个列表的交集。为此,您可以使用宏扩展函数来操作列表:参见 help macrolists

// Setup
local a x1 x2 x3 x4 x5
local b x4 x5 x6 x7 x8
local int x2 x3 x6

// Get intersection of variable lists and integer list
local a_int : list a & int
local b_int : list b & int

// Put a_int and b_int together and drop possible duplicates
local ab_int `a_int' `b_int'
local ab_int_uniq : list uniq ab_int

// Do something
foreach var of varlist `ab_int_uniq' {
    * do something
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...