布尔运算逻辑以及真值和假值

当非布尔型的数据类型在布尔环境(例如条件标签)中使用时,Liquid 会决定是将其评估为 true 还是 false。默认返回 true 的数据类型称为 真值(truthy),默认返回 false 的数据类型称为 假值(falsy)

真值(Truthy)

在 Liquid 中,除了 nilfalse 之外,所有值都是真值(truthy)。

在下面的示例中,文本 “Tobi” 不是布尔值,但在条件判断中,它被视为真值:

{% assign name = "Tobi" %}

{% if name %}
  This text will always appear since "name" is defined.
{% endif %}

字符串, 即使为空,也是一个真值(truthy)。下面的示例将在 page.category 存在但为空时创建空的 HTML 标签:

输入

{% if page.category %}
  <h1>{{ page.category }}</h1>
{% endif %}

输出

  <h1></h1>

假值(Falsy)

在 Liquid 中,唯一的假值(falsy)是 nilfalse

总结

下表总结了在 Liquid 中哪些是真值(truthy)或假值(falsy)。

类型 truthy 真值 falsy 假值
true •✅  
false   •✅
nil   •✅
string •✅  
empty string •✅  
0 •✅  
integer •✅  
float •✅  
array •✅  
empty array •✅  
page •✅  
EmptyDrop •✅