速度模板中的"for"循环

Moo*_*oon 34 loops velocity for-loop

我已经在一周前就如何在速度模板中使用'for'循环发布了一个类似的问题.

所以...基本上我不能在速度模板中使用'for'循环.

假设我有一个包含整数4的变量.我想使用该变量显示四次.我如何在速度模板中执行此操作?

csu*_*nig 53

尝试这样做:

#set($start = 0)
#set($end = 4)
#set($range = [$start..$end])
#foreach($i in $range)
   doSomething
#end
Run Code Online (Sandbox Code Playgroud)

代码尚未经过测试,但它应该像这样工作.


Ste*_*ler 34

您不必使用#set接受的答案.你可以使用这样的东西:

#foreach($i in [1..$end])
    LOOP ITERATION: $i
#end
Run Code Online (Sandbox Code Playgroud)

如果你想要零索引,你必须使用一个,#set因为你不能在范围运算符中减去一个:

#set($stop = $end - 1)
#foreach($i in [0..$stop])
    LOOP ITERATION: $i
#end
Run Code Online (Sandbox Code Playgroud)


Sta*_*wii 5

只是为了向 Stephen Ostermiller 的答案添加另一个选项,您还可以使用$foreach.index. 如果你想循环$n时间:

#foreach($unused in [1..$n])
    zero indexed: $foreach.index
#end
Run Code Online (Sandbox Code Playgroud)

此处,$unused未使用,我们改为使用$foreach.index从 0 开始的索引。

我们将范围从 1 开始,因为它包含在内,因此它将以$unused[1, 2, 3, 4, 5]$foreach.index为循环,而为 [0, 1, 2, 3, 4]。

有关更多信息,请参阅用户指南