こんにちは!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の中で使う場合、デフォルト値ごと括弧でくくってやる必要がある。
もしくはくくってやったほうが後々幸せになれるみたいな。そんなかんじ。
以上補足でございました。