目前正在研究从mvBase迁移到Unidata,并想知道是否支持用户自定义函数,因为我在下载的文档中看不到这一点?
例如我有像
这样的DATABASIC程序A = @FUNCTION_NAME(VAR1)
答案 0 :(得分:1)
是的,Unidata支持用户定义的功能。
要在Unidata中创建一个函数,请在代码文件的第1行使用这样的一行:
FUNCTION MY.FUNCTION.NAME( ARG1, ARG2 )
在函数内部,使用RETURN语句返回结果:
RETURN ARG1 + ARG2
要调用它,您必须表明您将在将使用该函数的程序中使用DEFFUN语句:
DEFFUN MY.FUNCTION.NAME( ARG1, ARG2 )
我通常把我的DEFFUN语句放在程序的顶部,就在任何$ INCLUDE之后。 (参数名称不必在FUNCTION和DEFFUN行之间匹配,但我不知道有任何理由故意使它们不同。)
在该设置之后,您可以通过在表达式中使用其名称来调用该函数:
TOTAL = MY.FUNCTION.NAME( 10, 15 )
在该声明之后,TOTAL的值为25。
我从未在Unidata中看到过使用@FUNCTION_NAME语法调用的函数。