alex_bn_lee

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

【297】IDL 过程、函数&关键字参数

目录:


参考:IDL中函数中的带有关键字的参数的使用

参考:IDL学习笔记(2)--函数与过程

参考:IDL中的关键字参数(keywords parameter)


一、Procedure
 
1.1 基本说明&定义

过程,无返回值

定义方式如下:

1
2
3
4
5
PRO Procedure_Name, argument1, ..., argumentn
 
   . . .
 
END

调用方式如下:

1
Procedure_Name, argument1, ..., argumentn
1.2 关键字参数

在IDL中,过程或者函数都可以有关键字参数(keyword parameter)。这些参数一般用作可选参数。

下面例子中有2个过程,将文件名命名为 test.pro,则 test过程 为主过程,直接运行此过程,f1过程 中的 z 为关键字参数,DE 为其标签(tag),在定义的函数内使用该参数的时候,注意要使用变量 z,而不是标签 DE。比如,在第7行中的 keyword_SET() 引用的是变量名 z,而不应该用标签名(tag name)。

其中“/DE”表示将 DE 赋值为1。

1
2
3
4
5
6
7
8
9
10
PRO TEST
  F1, 10, /DE
  PRINT, "-----------------------"
  F1, 10, DE=4
END
 
PRO F1, a, DE=z
  IF KEYWORD_SET(z) THEN PRINT, "de=", z
  PRINT, "a=", a
END

输出结果如下:

1
2
3
4
5
de=       1
a=      10
-----------------------
de=       4
a=      10
二、Function
 
2.1 基本说明&定义

函数,有返回值

定义方式如下:

1
2
3
4
5
FUNCTION Function_Name, argument1, ..., argumentn
 
   . . .
 
END

调用方式如下:

1
varName = Function_Name(argument1, ..., argumentn)
2.2 关键字参数

在IDL中,过程或者函数都可以有关键字参数(keyword parameter)。这些参数一般用作可选参数。

在调用 Plus_Minus 函数的时候,根据添加不同的关键字执行不同的操作(加法或减法)

1
2
3
4
5
6
7
8
9
10
11
12
13
PRO TEST
  a = Plus_Minus(3, 8, /PLUS)
  PRINT, a
  PRINT, "-----------------------"
  b = Plus_Minus(3, 8, /MINUS)
  PRINT, b
END
 
FUNCTION Plus_Minus, a, b, PLUS=plus, MINUS=minus
  IF KEYWORD_SET(plus) THEN tmp = a + b
  IF KEYWORD_SET(minus) THEN tmp = a - b
  RETURN, tmp
END

输出结果如下:

1
2
3
      11
-----------------------
      -5

posted on   McDelfino  阅读(1251)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示