如何使用自由标记删除数组中的值?

时间:2018-09-25 06:40:19

标签: arrays freemarker

我正在使用免费标记模板语言2.3.1。我想从数组中删除一个值。你有什么建议吗?

示例代码:

<#assign array=[0]> <#list array as a>${a}    <#assign array = array +[1]+[2]> <#assign array = array - [0]>    <#list array as b> ${b}</#list></#list>

O/P: 0 1 2

我必须用<#assign array = array - [0]>行替换什么?

1 个答案:

答案 0 :(得分:1)

希望2.3.1是一个错字,我将假定它至少是2.3.21。另外,由于数组类似的东西在FreeMarker中称为序列,因此我将使用该术语。因此,您无法在FreeMarker中修改序列,但是可以通过切片seq[from ..]seq[from .. toInclusive]seq[from ..< toExclusive]seq[from ..* length]来从序列中创建新序列,或者通过串联,例如seq1 + seq2。因此,您实际上可以删除一个元素:seq[0 ..< removedIndex] + seq[removedIndex + 1 ..]。所有这些操作仅创建“视图”,而不是修改任何内容,并且每次应用它们时,结果序列的读取速度都会变慢,因此请勿将它们应用数十或数百次。

请参见手册中的这些内容:https://freemarker.apache.org/docs/dgui_template_exp.html#dgui_template_exp_sequenceop

此外,您可以在这里快速进行实验:https://try.freemarker.apache.org/