布尔运算逻辑以及真值和假值
当非布尔型的数据类型在布尔环境(例如条件标签)中使用时,Liquid 会决定是将其评估为 true
还是 false
。默认返回 true
的数据类型称为 真值(truthy),默认返回 false
的数据类型称为 假值(falsy)。
真值(Truthy)
在 Liquid 中,除了 nil
和 false
之外,所有值都是真值(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)是 nil
和 false
。
总结
下表总结了在 Liquid 中哪些是真值(truthy)或假值(falsy)。
类型 | truthy 真值 | falsy 假值 |
---|---|---|
true | •✅ | |
false | •✅ | |
nil | •✅ | |
string | •✅ | |
empty string | •✅ | |
0 | •✅ | |
integer | •✅ | |
float | •✅ | |
array | •✅ | |
empty array | •✅ | |
page | •✅ | |
EmptyDrop | •✅ |