下面的表格显示了已定义操作符的优先级。 表格中的运算符按照优先程度降序排列:上面的操作符优先级高于它下面的。 高优先级的运算符执行要先于优先级比它低的。表格同一行上的两个操作符优先级相同。 当有相同优先级的二元运算符(运算符有两个''参数'',比如 +
和-
)挨着出现时,它们按照从左到右的原则运算。
如果你熟悉C语言,Java语言或JavaScript语言, 请注意 FreeMarker 中的优先级规则和它们是相同的, 除了那些只有FTL本身含有的操作符。
因为编程的失误,默认值操作符 (exp!exp
) 不在上面的表格中,按照向后兼容的原则,在 FreeMarker 2.4 版本中将会修正它。 而且它将是最高优先级的运算符,但是在 FreeMarker 2.3.x 版本中它右边的优先级由于失误就非常低。 所以在默认值操作符的右边中使用复杂表达式时可以使用括号, 可以是 x!(y + 1)
或者是 (x!y) + 1
。 而不能是 x!y + 1
。