Altova XMLSpy 2023 Enterprise Edition

集合和迭代器

一个集合包含多个对象,正如普通的数组一样。迭代器解决了调用对象时的存储和递增数组索引的问题。

 

语法:

 

foreach iterator in collection

 statements

next

 

示例:

 

[foreach \$class in \$classes

 if not \$class.IsInternal

         ]        class [=\$class.Name];

[        endif

next]

 

示例2:

 

[foreach \$i in 1 To 3

      Write "// Step " & \$i & "\"

      ‘ Do some work

next]

 

 

在第一行:

 

\$classes 是所有生成的类型的全局对象 。它是单个类对象的组合。

 

Foreach 遍历\$classes中的所有项,并为每个项执行指令之后的代码,直至next语句。

 

在每次迭代中,\$class 都会被分配给下一个类对象。您只需使用类对象,而不是像在C++中那样使用classes[i]->Name()。

 

所有集合迭代器都具有以下附加属性:

 

索引

当前索引,从0开始

IsFirst

如果当前对象是集合的第一个对象(索引为0),则为true

IsLast

如果当前对象是集合的最后一个对象,则为true

Current

当前对象(如果未指定且可以被省去,则是隐式的)

 

示例:

 

[foreach \$enum in \$facet.Enumeration

 if not \$enum.IsFirst

         ], [

 endif

 ]"[=\$enum.Value]"[

next]

© 2017-2023 Altova GmbH