【297】IDL 过程、函数&关键字参数
目录:
参考:IDL中的关键字参数(keywords parameter)
过程,无返回值
定义方式如下:
1 2 3 4 5 | PRO Procedure_Name, argument1, ..., argumentn . . . END |
调用方式如下:
1 | Procedure_Name, argument1, ..., argumentn |
在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 |
函数,有返回值
定义方式如下:
1 2 3 4 5 | FUNCTION Function_Name, argument1, ..., argumentn . . . END |
调用方式如下:
1 | varName = Function_Name(argument1, ..., argumentn) |
在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 2018-01-24 13:59 McDelfino 阅读(1251) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)