免费标记??运算符同等对待缺失值和 false

问题描述 投票:0回答:1

使用FreeMarker,就遇到这样的事情。

??
运算符处理缺失值和
false
。例如下面的

<#assign someVar = false>
<#if someVar??>
    someVar is empty...
<#else>
    someVar exists!
</#if>

输出:

someVar is empty...

尽管我假设

false
应被视为现有值,因此输出应为
someVar exists!

FreeMarker 中是否有一些设置来规范此类行为?处理可选布尔值的最佳方法是什么? (对于像

stringVar!"default value"
这样的字符串来说一切都很清楚,但这似乎不适用于布尔值)。我需要处理可选的布尔字段,并为
true
输出“Yes”,为
false
输出“No”,为空值输出“—”。

freemarker
1个回答
0
投票

??
不会专门处理布尔值。
someVar??
表示“someVar 存在”,并且
false
确实存在。让您感到困惑的是您认为
??
具有相反的含义(“someVar 丢失”)。

© www.soinside.com 2019 - 2024. All rights reserved.