我对IDL比较陌生,所以我很确定我想要做的事实上是微不足道的!
我正在创建一个包含几个成员变量的类。其中两个只是浮动,但第三个我想成为一个未知大小的三维数组(嗯......实际上我知道第三个维度的大小为12,但就是这样!)。如何在类定义中声明这个或者不可能?也许我需要使用非数组数据结构..?
到目前为止,这是我的代码:
pro field__define
void={field, lat_res: 0.0, long_res: 0.0, values: ?!?!?!?!}
return
end
答案 0 :(得分:2)
您想使用指针,例如:
pro field__define
void = { field, lat_res: 0.0, long_res: 0.0, values: ptr_new() }
end
顺便说一句,定义中不需要RETURN
,执行返回时会返回END
语句。
这实际上并不创建指针,它只是为指针节省空间。当您想要使用该字段时,您需要执行以下操作:
self.values = ptr_new(fltarr(3, 4, 5))
然后使用以下值:
help, *self.values
最后,当你完成数组时,不要忘记清理堆:
ptr_free, self.values
获得一本关于这样的主题的书可能会很好,有很多细节可以通过一些例子来帮助。
答案 1 :(得分:0)
使用散列来表示类的成员变量的替代技术概述为here。它的优势在于使用哈希比使用IDL中的指针更容易,但它至少需要运行IDL版本8.