IDL:使用存储在变量中的字段名来访问struct字段?

Car*_*age 5 struct idl-programming-language

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

即.

x ='fieldname'

是可以做到的

data = struct.(x)在某种程度上?我想在x中使用字符串作为字段名称.

Jim*_*wis 7

是的,可以使用以下TAG_NAMES功能:

tnames=TAG_NAMES(struct)
tindex=WHERE(STRCMP(tnames,'fieldname') EQ 1)
data=struct.(tindex)
Run Code Online (Sandbox Code Playgroud)

该调用TAG_NAMES返回一个表示在其中定义的标记的字符串数组struct.该WHERE语句返回tnames字符串匹配的索引'fieldname'.最后,索引被传递给struct.(tindex)操作,该操作通过其数字标记索引提取字段.

当然,在实际应用程序中,您需要检查是否tindex已成功匹配某些内容,否则IDL将使用索引-1 阻止结构查找.