IDL:使用存储在变量中的字段名称访问结构字段?
如果我有一个字段名为“fieldname”的结构,是否可以仅使用变量访问该字段中的数据?
IE。
x = 'fieldname'
是否可以以某种方式执行
data = struct.(x) ?我想使用 x 中的字符串作为字段名称。
If I have a struct with a fieldname 'fieldname', is it possible to access the data in that field using only the variable?
ie.
x = 'fieldname'
is it possible to do
data = struct.(x) in some way? I want to use the string in x as the field name.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,可以使用
TAG_NAMES
函数实现:调用
TAG_NAMES
返回一个字符串数组,表示struct
中定义的标签。WHERE
语句返回与'fieldname'
匹配的字符串在tnames
中的索引。最后,索引被传递给 struct.(tindex) 操作,该操作通过以下方式提取字段
它的数字标签索引。
当然,在真实的应用程序中,您需要检查
tindex
是否成功与某些内容匹配,否则 IDL 将因索引的结构查找而阻塞
-1。
Yes, this is possible using the
TAG_NAMES
function:The call to
TAG_NAMES
returns an array of strings representing the tags defined instruct
.The
WHERE
statement returns the index intnames
of a string matching'fieldname'
.Finally, the index is passed to the
struct.(tindex)
operation, which extracts a field byits numeric tag index.
Of course, in a real application you'd want to check whether
tindex
was successfullymatched to something, otherwise IDL will choke on the structure lookup with an index
of -1.