【297】IDL 过程、函数&关键字参数
目录:
参考:IDL中的关键字参数(keywords parameter)
过程,无返回值
定义方式如下:
PRO Procedure_Name, argument1, ..., argumentn . . . END
调用方式如下:
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。
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
输出结果如下:
de= 1
a= 10
-----------------------
de= 4
a= 10
函数,有返回值
定义方式如下:
FUNCTION Function_Name, argument1, ..., argumentn . . . END
调用方式如下:
varName = Function_Name(argument1, ..., argumentn)
在IDL中,过程或者函数都可以有关键字参数(keyword parameter)。这些参数一般用作可选参数。
在调用 Plus_Minus 函数的时候,根据添加不同的关键字执行不同的操作(加法或减法)
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
输出结果如下:
11
-----------------------
-5
【297】IDL 过程、函数&关键字参数的更多相关文章
- Delphi过程函数传递参数的几种方式
Delphi过程函数传递参数的几种方式 在Delphi过程.函数中传递参数几个修饰符为Const.Var.Out. 另一种不加修饰符的为默认按值传递参数. 一.默认方式以值方式传递参数 proced ...
- plsql programming 17 过程, 函数与参数
代码模块化, 即将一大块代码拆成若干小块(过程), 然后就可以在其他模块调用这些模块了, 这样, 重用性更好, 也方便管理. 过程: 过程是一个可以像执行 PL/SQL 语句一样调用的程序, 一个过程 ...
- Python新手学习基础之函数-关键字参数
关键字参数 函数也可以使用 键 =值 的关键字参数形式被调用,这种调用形式的参数被称为关键字参数. 特别是在一个有许多参数的函数下,你想要指定参数中的部分参数,你可以使用关键字参数的方式来调用函数. ...
- Delphi过程函数传递参数的八种方式
今天一同事问我为什么有些过程函数里面有Var而有些没有,不解,遂到网上百度,得解.快哉,快哉. 在Delphi过程.函数中传递参数几个修饰符为Const.Var.Out.另一种不加修饰符的为默认按值传 ...
- Python3基础 函数 关键字参数 的示例
镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...
- Python 函数 (关键字参数)
关键字参数 可变参数允许你传入0个或者任意个参数,这些可变参数在函数调用时会自动组装成一个tuple,而关键字参数允许你传入0个或者任意个含参数名的参数,这些参数在函数内部自动组装成为一个dict d ...
- 【delphi】Delphi过程、函数传递参数的八种方式
Delphi过程函数传递参数的八种方式
- Oracle过程及函数的参数模式,In、out、in out模式
Oracle过程及函数的参数模式 In.out.in out模式 在Oracle中过程与函数都可以有参数,参数的类型可以指定为in.out.in out三种模式. 三种参数的具体说明,如下图所示: ( ...
- 洗礼灵魂,修炼python(21)--自定义函数(2)—函数文档,doctest模块,形参,实参,默认参数,关键字参数,收集参数,位置参数
函数文档 1.什么是函数文档: 就是放在函数体之前的一段说明,其本身是一段字符串,一个完整的函数需要带有函数文档,这样利于他人阅读,方便理解此函数的作用,能做什么运算 2.怎么查看函数文档: func ...
随机推荐
- Atcoder Beginner Contest 118
A: B +/- A 签到题. B: Foods Loved by Everyone 签到题. C: Monsters Battle Royale 怪物的血量一直两两相减,类似于辗转相减法. 可以证明 ...
- js去重复和取重复数据
js数组中取重复数据的方法: 方法一:去重复数据 <script> Array.prototype.distinct=function(){ var a=[],b=[]; for(var ...
- ThinkPHP5 使用create 获取表单所有字段
TP5没有 TP3的那个create创建表单字段,如果字段太多,写起来是非常麻烦 只需要在 框架里面 think/db/Query.php 里面加上函数 public function create( ...
- javascript异常处理。 屏蔽异常
http://www.cnblogs.com/aqbyygyyga/archive/2011/10/29/2228824.html
- SEO方案
前端需要注意哪些SEO 合理的title.description.keywords:搜索对着三项的权重逐个减小,title值强调重点即可,重要关键词出现不要超过2次,而且要靠前,不同页面title要有 ...
- liunx系统环境下,爆出该错误"org.eclipse.wst.validation" has been removed解决办法
导出maven工程遇到的问题,"org.eclipse.wst.validation" has been removed,还以为是工程本身的问题,后来发现是eclipse的问题. ...
- python模块--随机模块
import random print(random.random()) # 随机产生一个(0,1)的 float 0.026244299361600776 print(random.randint( ...
- lapis docker 运行说明
1. lapis docker 镜像制作 因为openresty 新版本一个json 库的问题,我们使用的是 openresty:1.11.2.1 基础镜像 FROM openresty/openre ...
- bzoj 1101 [POI2007]Zap——反演
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1101 #include<cstdio> #include<cstring& ...
- Magento(麦进斗)安装问题
安装到数据库那一步会跳出 lib\Zend\Db\Statement\Pdo.php on line 228 错误 解决方案: 在你的php模块里的php.ini文件添加(或者修改)max_execu ...