FOREACH 语法错误 ... ENDFOREACH 循环

Syntax error on FOREACH ... ENDFOREACH loop

我在 IDL(版本 8.2.2)中得到了一个看似简单的 FOREACH 循环。对于我的生活,我不明白为什么我会收到语法错误。我尝试用具有相同结果的简单 FOR 循环替换 FOREACH

删除 for 循环和 运行 单独的语句可以正常工作(当然,对 file 的单个值进行硬编码)。

FOREACH file, filenames DO BEGIN
   ; A number of
   ; statements that execute
   ; just fine
ENDFOREACH

结果:

ENDFOREACH
 ^
% Syntax error.

这是脚本中的全部 运行,用 @myscript

调用

也许直接来自文档的更简单的示例会有所帮助:

我创建了一个脚本 test.pro,copy/paste 来自文档:http://www.harrisgeospatial.com/docs/BEGIN___END.htmltest.pro 的内容是:

arr = [1, 3, 5, 7, 9]
FOREACH element, arr DO BEGIN
   PRINT, element
ENDFOREACH

结果:

IDL> @test
       9

ENDFOREACH
 ^
% Syntax error.
  At: /mydir/test.pro, Line 4
IDL>

批处理文件(通过 @myscript 调用)不能有复合语句,即 BEGIN/END。使其成为 procedure/function 或主程序。