目录:


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

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

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


一、Procedure
 
1.1 基本说明&定义

过程,无返回值

定义方式如下:

PRO Procedure_Name, argument1, ..., argumentn

   . . .

END

调用方式如下:

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。

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
 
2.1 基本说明&定义

函数,有返回值

定义方式如下:

FUNCTION Function_Name, argument1, ..., argumentn

   . . .

END

调用方式如下:

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

在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 过程、函数&关键字参数的更多相关文章

  1. Delphi过程函数传递参数的几种方式

    Delphi过程函数传递参数的几种方式  在Delphi过程.函数中传递参数几个修饰符为Const.Var.Out. 另一种不加修饰符的为默认按值传递参数. 一.默认方式以值方式传递参数 proced ...

  2. plsql programming 17 过程, 函数与参数

    代码模块化, 即将一大块代码拆成若干小块(过程), 然后就可以在其他模块调用这些模块了, 这样, 重用性更好, 也方便管理. 过程: 过程是一个可以像执行 PL/SQL 语句一样调用的程序, 一个过程 ...

  3. Python新手学习基础之函数-关键字参数

    关键字参数 函数也可以使用 键 =值 的关键字参数形式被调用,这种调用形式的参数被称为关键字参数. 特别是在一个有许多参数的函数下,你想要指定参数中的部分参数,你可以使用关键字参数的方式来调用函数. ...

  4. Delphi过程函数传递参数的八种方式

    今天一同事问我为什么有些过程函数里面有Var而有些没有,不解,遂到网上百度,得解.快哉,快哉. 在Delphi过程.函数中传递参数几个修饰符为Const.Var.Out.另一种不加修饰符的为默认按值传 ...

  5. Python3基础 函数 关键字参数 的示例

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...

  6. Python 函数 (关键字参数)

    关键字参数 可变参数允许你传入0个或者任意个参数,这些可变参数在函数调用时会自动组装成一个tuple,而关键字参数允许你传入0个或者任意个含参数名的参数,这些参数在函数内部自动组装成为一个dict d ...

  7. 【delphi】Delphi过程、函数传递参数的八种方式

    Delphi过程函数传递参数的八种方式

  8. Oracle过程及函数的参数模式,In、out、in out模式

    Oracle过程及函数的参数模式 In.out.in out模式 在Oracle中过程与函数都可以有参数,参数的类型可以指定为in.out.in out三种模式. 三种参数的具体说明,如下图所示: ( ...

  9. 洗礼灵魂,修炼python(21)--自定义函数(2)—函数文档,doctest模块,形参,实参,默认参数,关键字参数,收集参数,位置参数

    函数文档 1.什么是函数文档: 就是放在函数体之前的一段说明,其本身是一段字符串,一个完整的函数需要带有函数文档,这样利于他人阅读,方便理解此函数的作用,能做什么运算 2.怎么查看函数文档: func ...

随机推荐

  1. jquery插件的2种扩展开发(jQuery.extend和jQuery.fn.extend的区别)

    1.类级别 jQuery.extend(object) 类级别你可以理解为拓展jquery类,最明显的例子是$.ajax(...),相当于静态方法. 开发扩展其方法时使用$.extend方法,即jQu ...

  2. C#/.NET 读取或修改文件的创建时间和修改时间

    手工在博客中添加 Front Matter 文件头可是个相当费事儿的做法,这种事情就应该自动完成. .NET 中提供了非常方便的修改文件创建时间的方法,使用这种方法,能够帮助自动完成一部分文件头的编写 ...

  3. ASP.NET Core 中的SEO优化(4):自定义视图路径及主题切换

    系列回顾 <ASP.NET Core 中的SEO优化(1):中间件实现服务端静态化缓存> <ASP.NET Core 中的SEO优化(2):中间件中渲染Razor视图> < ...

  4. Open Asset Import Library(assimp) vs2010编译

    Assimp(Open Asset Import Library)是一个开源的3D模型导入解析库, 可以处理很多种3D文件格式:Collada, Blend, Obj, X, 3DS, LWO, MD ...

  5. spring事务传播机制的测试结果

    /**     * @Component是个一般性的注解,使用此注解修饰的POJO类,有value属性,指定bean的id.也可不写.默认值是类名首字母小写     * @Resource是控制依赖注 ...

  6. gradle multiproject && docker build

    备注:   环境准备 : docker , gradle(使用wrapper,或者全局安装),测试环境使用mac 1. gradle 安装 brew install gradle   2. docke ...

  7. caddy server 了解

    Caddy 是一个Go写的服务器软件,官方的宣传语“The HTTP/2 web server with automatic HTTPS”以及“Serve The Web Like It's 2016 ...

  8. Hibernate学习4—关联关系一对多映射

    一.班级学生一对多映射实现(单向) Class 1 * Student 一对多 在学生多的一方,配置一的对象:   com.cy.model.Class: package com.cy.model; ...

  9. 【转】Jmeter入门:如何建立和使用Jmeter测试环境

    一.工具描述 apache jmeter是100%的java桌面应用程序,它被设计用来加载被测试软件功能特性.度量被测试软件的性能.设计jmeter的初衷是测试web应用, 后来又扩充了其它的功能.j ...

  10. hdu 1576 A/B(拓展欧几里得)

    A/B Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...