【IDL】自定义过程与函数关键字参数说明

定义一个获取数据最大值的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

运行结果

【IDL】自定义过程与函数关键字参数说明_第1张图片

关键字参数可以灵活的修改程序,增强程序的可扩展性,当然我只是简单的写一下,实际的情况还得根据具体需求来

你可能感兴趣的:(IDL)