FreeMarker(ftl)のデフォルト値演算子と条件分岐の補足

こんにちは!Free(略)


昨日のやつの補足を少々。
FreeMarker(ftl)のデフォルト値演算子と条件分岐 - するめとめがね


変数numが存在するとき、これはエラーを吐きますが

<#if num!0 == 0>
true
</#if>

これはエラーを吐きません。

<#if 0 == num!0>
true
</#if>


ええーじゃあ左辺と右辺逆転すれば済む話じゃーん、みたいに思ったりもしなくもないですが、この後に条件を追加すると結局エラー吐いて死にます。

<#if 0 == num!0 && str?has_content == false>
true
</#if>

この場合、変数numが存在しない場合でも死にます。


というわけで結論は変わらず、デフォルト演算子をifの中で使う場合、デフォルト値ごと括弧でくくってやる必要がある
もしくはくくってやったほうが後々幸せになれるみたいな。そんなかんじ。


以上補足でございました。

スポンサーリンク