我正在使用免费标记模板语言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]>
行替换什么?
答案 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/