struct - IDL : Accessing struct fields using field names stored in variables?

标签 struct idl-programming-language

如果我有一个具有字段名“fieldname”的结构,是否可以仅使用变量来访问该字段中的数据?

IE。

x ='fieldname'

有可能做

数据= struct。(x)以某种方式?我想使用x中的字符串作为字段名称。

最佳答案

是的,可以使用TAG_NAMES函数实现:

tnames=TAG_NAMES(struct)
tindex=WHERE(STRCMP(tnames,'fieldname') EQ 1)
data=struct.(tindex)

调用TAG_NAMES会返回一个字符串数组,这些字符串表示struct中定义的标签。WHERE语句返回tnames中与'fieldname'匹配的字符串的索引。
最后,将索引传递给struct.(tindex)操作,该操作通过以下方式提取字段:
其数字标签索引。

当然,在真实的应用程序中,您需要检查tindex是否成功
与某物匹配,否则IDL将阻塞带有索引的结构查找
-1。

关于struct - IDL : Accessing struct fields using field names stored in variables?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2806058/

相关文章:

C struct自动初始化值,数组初始化

c++ - 接受用户输入的字符并按出现的降序显示它们的程序

C - 创建结构的动态数组,结构成员打印错误的值?

C 结构体的成员数组

c++ - 如何在 C++ 中对整数值进行位移

python - 在 IDL 中相当于 python 的循环命令

c - 如何在编译时获取初始化列表中的元素总数?

python - 如何从 IDL 访问这个 'rec.array' 中的数据?

bash - 从带有变量的 bash 运行 IDL 程序

ubuntu - "Gtk WARNING: gtk_disable_setlocale() must be called before gtk_init()"在 gdl(gnu 数据语言)中调用绘图