定义一个获取数据最大值的GetMax函数,和GetMax_2的过程,测试效果
PRO Test_function
a=1
b=2
c=3
;这里d为位置参数,可选
variable_1=GetMAX(a,b,c,d=1)
PRINT,'variable_1:',variable_1
;过程没有返回值,这里d为空
GetMax_2,a,b,c,variable_2
PRINT,'variable_2:',variable_2
;另外设置d的值为2
GetMax_2,a,b,c,variable_3,d=2
PRINT,'variable_3:',variable_3
END
;===================================
;这里的d有点像C#里面的构造函数,初始化数据
FUNCTION GetMax,a,b,c,d=d
arr=[a,b,c]
;判断位置参数是否为空,是则默认为0
IF (d EQ !NULL) THEN BEGIN
d=0
ENDIF
e=MAX(arr)+d
RETURN, e
END
;===================================
;过程无返回值,这里4个位置参数,一个关键字参数
PRO GetMax_2,a,b,c,e,d=d
arr=[a,b,c]
IF (d EQ !NULL) THEN BEGIN
d=0
ENDIF
e=MAX(arr)+d
END
运行结果
关键字参数可以灵活的修改程序,增强程序的可扩展性,当然我只是简单的写一下,实际的情况还得根据具体需求来