如何使用对象引用在单独的过程中为变量提供命令行参数?

时间:2014-08-10 09:45:18

标签: idl idl-programming-language

IDL初学者在这里!让我们说我有两个程序,PRO1和PRO2。如果我在PRO2中收到命令行参数,如何将参数值赋给PRO1中的变量?

我之前尝试过对象引用“我的'”到PRO1,但我在第6行收到语法错误。

PRO PRO2 
opts = ob_new('mg_options)
opts.addOption, 'value', 'v'
opts.parseArgs,error_message = errorMsg
My = obj_new('PRO1')
My.A=opts.get('value')
END

作为参考,我尝试按照这些说明接收命令行参数:http://michaelgalloy.com/2009/05/11/command-line-options-for-your-idl-program.html

1 个答案:

答案 0 :(得分:0)

我在这里有别的东西,但我认为上面的例子实际上是你要避免的,是吗? 我不确定它最终是如何完全不同,但如果你想让你的程序成为一个对象,你就必须定义一个实际的对象(见{{3并创建包含代码功能的方法。这是一个非常接近的东西。

在名为pro1__define.pro的文件中:

function pro1::Init
    self.A = 0L
    return, 1
end

pro pro1::process, in_val
    self.A = in_val
    print, self.A
end

pro pro1__define
    struct = {pro1, A:0L}
end

然后在pro2中你会做类似

的事情
arg = 2
pro1_obj = pro1()
pro1_obj->process, arg

根据您使用的IDL版本,您可能必须将初始化行修改为obj_new()语法。