On this page
local
Page Contents
Synopsis
<#local name=value>
or
<#local name1=value1 name2=value2 ... nameN=valueN>
or
<#local name>
capture this
</#local>
Where:
name
:根目录中本地对象的名称。它不是表达。但是,它可以写为字符串 Literals,如果变量名称包含保留字符(例如<#local "foo-bar" = 1>
),则很有用。请注意,此字符串 Literals 不会扩展插值(如"${foo}"
)。=
:赋值运算符,也可以是速记赋值运算符之一(++
,+=
等),就像分配指令一样,value
:要存储的值。表达。
Description
它类似于assign directive,但是它创建或替换局部变量。这仅在宏定义和函数定义内起作用。
有关变量的更多信息,请阅读:模板作者指南/模板中的其他/定义变量
Note:
一个常见的错误是试图使用assign
来更改局部变量,例如:<#macro m><#local x = 1>${x}<#assign x = 2>${x}</#macro>
。这将打印11
而不是12
,因为assign
创建/替换了模板所属的命名空间的x
,并且不更改x
局部变量。局部变量应始终使用local directive设置,而不仅仅是在第一时间设置。