このエントリーをはてなブックマークに追加

読了: 約 1 分

ftl(http://freemarker.org/)を使用していると頻出するのがlocalとassign。
どちらもローカル変数なのですが、使い方を間違えると意図しない動きになるのでメモしておきます。

下記が何故trueになるのか、、というところで悩む方がいるかもしれませんが、

<#local x = true>
<#local y = false>
<#local z = 0>
<#if z = 0>
<#assign x = false>
</#if>
${x} // true

<#if>や<#list>の中でローカル変数を定義すると、その中でしかその値は使えず、
ループや条件分岐を抜けた場合は外側のlocal変数に定義されているtrueが有効になるという当たり前のシンプルな答えでした。

<#assign x = true>
<#if z == 0>
<#assign x = false>
</#if>

の場合は、有効になるので注意が必要です。

参考記事

http://www.hos.co.jp/blog/20100712/

時給2500円以上の求人案件のみ掲載の、コデアル
テレビ番組にも取り上げられ、副業・フリーランス向けエンジニア多数掲載 !!

SNSでもご購読できます。

運営メディア

男性向けお役立ちメディア Coolhomme
就職・転職、エンジニア転職向け求人サイト Rplay
'