目录:


参考: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. C# 中那些可以被重载的运算符,以及使用它们的那些丧心病狂的语法糖

    C# 中的操作符重载并不新鲜.然而,到底有哪些操作符可以重载,重载操作符可以用来做哪些丧心病狂的事情呢? 本文收集了 C# 中所有可以重载的操作符,并且利用他们做了一些丧心病狂的语法糖.   可以重载 ...

  2. Palindrome Degree(hash的思想题)

    个人心得:这题就是要确定是否为回文串,朴素算法会超时,所以想到用哈希,哈希从左到右和从右到左的key值一样就一定是回文串, 那么问题来了,正向还能保证一遍遍历,逆向呢,卡住我了,后面发现网上大神的秦九 ...

  3. 【DUBBO】dubbo架构详解(转载)

    转载地址:http://shiyanjun.cn/archives/325.html Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解 ...

  4. C# winform中自定义用户控件 然后在页面中调用用户控件的事件

    下面是用户控件的代码: using System; using System.Collections.Generic; using System.ComponentModel; using Syste ...

  5. c++深拷贝/浅拷贝

    拷贝构造函数,是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初始化.其唯一的参数(对象的引用)是不可变的(const类型).此函数经常用在函数调用时用户定义类型的值传递及返 ...

  6. 什么是spark(一) 分区以及和MR的区别

    什么是spark,是一个分布式计算平台,或者说是分布式计算引擎,他的职责就是将指定的数据读入到各个node的内存中,然后计算.所以spark是具有泛化性质的,只要数据源是可读入的,读到内存里面之后,处 ...

  7. atoi函数的实现——面试

    主要考虑,字符串中是否有非法字符,字符串是否有溢出控制 #include<stdio.h> int myatoi(const char *str){ ,ret=,i=; if(str[i] ...

  8. 紫金桥OPC接口使用技巧

    OPC接口使用技巧 OPC接口是由OPC基金会制定的,基于DCOM技术的,用于控制系统软件之间进行数据通讯的接口规范.由于其开放性和高效性,现在已被广泛应用于自动化控制领域及生产信息管理中.紫金桥软件 ...

  9. cowboy动态页面的例子

    cowboy的动态页用的是erlydtl,需要先安装erlydtl模板引擎,或者你在dep里面添加 创建工程 rebar-creator create-app testCowboy testCowbo ...

  10. Data_Structure01-绪论作业

    一.作业题目 仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子.分母均为整数且分母不为零的分数). 有理数基本运算: 构造有理数T,元素e1,e2分别被赋以分子.分母值 销 ...