集合和foreach
集合和迭代器
一个集合包含多个对象,正如普通的数组一样。迭代器解决了调用对象时的存储和递增数组索引的问题。
语法:
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] |