如果我有一个具有字段名“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/