使用形式: unsafe_expr??
或 (unsafe_expr)??
这个操作符告诉我们一个值是否存在。基于这种情况, 结果是 true
或 false
。
访问非顶层变量的使用规则和默认值操作符(上一篇)也是一样的, 也就是说,可以写 product.color??
和 (product.color)??
。
用于非顶层变量时,默认值操作符可以有两种使用方式:
1. product.color??
2. (product.color)??
两种使用方式区别:
第一种方式,当product为null,这会解析出错(java中的空指针),当product不为null,color为null,返回false
第二种方式:product为null或者product存在而color为null,都不会解析出错,返回false
示例如下,假设并没有名为 mouse
的变量:
<#if mouse??>
Mouse found
<#else>
No mouse found
</#if>
Creating mouse...
<#assign mouse = "Jerry">
<#if mouse??>
Mouse found
<#else>
No mouse found
</#if>
将会输出:
No mouse found
Creating mouse...
Mouse found