001 - 一起学习IDL

前沿

其实接触IDL已经有些时间了,但感觉自己还是还没入门的小白。以前那完全是为了解决面临的问题而“查找式的学习”,到头来自己的能力一点长进都没有,完全不懂IDL的精髓,唉。这两天难得静下心来仔细看了两章IDL的基础内容,感触颇多,感觉学习语言还是要系统的学,要不然很多机理都不懂。

开始学习之前还是要先了解一些基本内容。

IDL种常见的3种符号:注释符(;)、续行符($)和同行符(&)

注释符(;)我就不多说了,这里主要说说续行符($)和同行符(&)。

在IDL代码里面,一行就是一个命令,不能有多条命令行(不包括多行结构的语句,如for ,if等)。

假如你想把多个命令写在一行里,这时就可以用同行符(&)来连接。

对于单一的命令行,当命令比较长时,可以将单一的命令写在多行里,行与行之间用续行符($)连接。

错误的运用都会出现错误:

简单理解:续行符($)主要是针对单一命令行,同行符(&)则是针对不同命令行。

IDL代码编写模式有3种:批处理模式、文件模式以及命令行模式

以前我总是搞不清批处理模式和文件模式,一上来就是一个”Pro --- end”,就像下图一样,☆(ゝω・)v哈哈。

而且有时下载网上的代码下来用时,还自作聪明加上”Pro --- end”,内心还鄙夷别人连基本规范都不懂,到头来其实是自己什么都不懂(╥╯^╰╥),原来别人用的是批处理模式。。。

命令行模式:在命令行下执行IDL函数或命令的模式。

批处理模式:执行多行命令的模式,运行结果与IDL命令行下运行多条命令一样。

文件模式:执行文件中包含一个或多个功能模块的代码的方式,且功能模块只能是过程(Procedure)或函数(Function)。

在我的理解看来,这三种模式之间既有联系又有不同。我想象有这样一个场景 (帮助我们记忆):早期程序员都是用命令行执行IDL命令(像DOS黑框界面那样),然后有人发现命令行每次只能执行一行命令,当要循环输入多行命令时就很麻烦。于是批处理模式就出来了,它就是将多行命令保存到一个文件里(如:文件名为“batch”)。这样每次要执行这些命令行时,只需给定这个文件,让系统用特定的方式执行文件里的命令就行了。

那么文件模式是怎么得来的呢?其实我们可以把批处理模式理解成“面向过程的编程”,而文件模式就是“面向对象的编程”。现在,不用我再讲故事你就懂了吧。文件模式有什么好处,也不用我说了吧(* ̄︶ ̄)。(不了解的,可以上网查查哦)

这三种模式,他们之间有联系,但还是有一些要注意的地方。后面我们主要说说批处理模式与文件模式要注意的地方。

批处理模式与文件模式的注意事项

对于批处理模式,它只包含命令,无需Pro、END等关键字。如下图,构建了一个名为“batch_plot”批处理文件,调用的时候用:@+文件完整路径。当然假如你的文件存在当前工作路径下的话,就直接用:@+文件名。

另外,批处理文件里面不能使用多行结构的语句,如For···do begin···endfor,但可以使用同行符(&)来实现(前面介绍过)。例如:

For i=1,10 do begin & print,I & endfor

而且批处理文件不能编译或直接点击运行,如何调用,上面已经说了,要不然会报错。

对于文件模式,在编写时,过程必须以“Pro”开始,以“end”结尾;函数必须以“function”开始,以“end”结束(函数一般有返回值)。在调用它们之前必须先编译。

过程调用方式为:”过程名,参数1,参数2···”

函数调用方式为:”result = 函数名(参数1,参数2···)”

上面讲的属于比较基本的IDL代码编写模式,在文件模式下,还有其他几种复杂的编码方式,比如:包含文件、过程文件、主程序文件。这里篇幅有限,下次再慢慢说吧٩(๑❛ᴗ❛๑)۶

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值