关于Nunjucks中{% set %}结合内联if else的语法疑问
关于Nunjucks中{% set %}与内联if/else结合的语法合法性
这段代码确实是合法的Nunjucks语法,不过还有更简洁的写法可以参考。
你的代码解析
你提供的代码:
{% set variable%} {{ a if a > 0 else 1 }} {% endset %}
这是用块级set语法(带{% endset %}的形式)定义变量,内部嵌入了Nunjucks的内联条件表达式,逻辑上完全成立——当a>0时,variable会被赋值为a的值;否则赋值为1。
更简洁的等价写法
Nunjucks支持直接在单行{% set %}中使用内联条件表达式,不需要块级语法,代码更紧凑直观:
{% set variable = a if a > 0 else 1 %}
这个写法和你提供的代码功能完全一致,也是官方更推荐的简洁用法。
为什么难找到对应示例?
内联条件表达式属于Nunjucks的基础表达式,而块级set更多被用于定义包含多行内容(比如HTML片段)的变量,所以大部分示例会优先展示单行set结合条件的写法,而非块级形式,但两种写法的合法性都是没问题的。
内容的提问来源于stack exchange,提问作者Alexis Sanchez
相关产品推荐
相关产品推荐

