布尔运算逻辑以及真值和假值
当非布尔型的数据类型在布尔环境(例如条件标签)中使用时,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 | •✅ |