之间的区别 ,free_marker中的has_content,if_exists
以下在freemarker中有什么区别?
! has_content ?? if_exists
我用了 ?? 而不是has_content&它导致如此巨大的问题。 搞砸了我的一天。 我真的需要弄清楚这个事情。
当我使用
!(xyz.abc!)?? -- it dint work
当我使用
!(xyz.abc!)?has_content ... it did work
不? OR has_content或if_exists检查相同的事情?
??
告诉左手操作数的值是否丢失(意味着它是Java null
或者您有一个未定义的variables),并相应地返回false
(missing)或true
(not missing)。
?has_content
非常像??
,除了它也为空string或空列表或空映射返回false
。 (它不会返回0
,布尔值false
等)
!
是用来给一个默认值,当一个值丢失,如color!"no color"
。 如果你省略了右手操作数!
,那么默认值是空string和空序列,同时是空的哈希。
?if_exists
是旧的写作方式??
。 不要使用它。