Truthy and Falsy

When a non-boolean data type is used in a boolean context (such as a conditional tag), Liquid decides whether to evaluate it as true or false. Data types that return true by default are called truthy. Data types that return false by default are called falsy.

Trong lập trình, chúng ta mô tả “Truthy” (đúng) và “falsy” (sai) như bất kì kết quả trả về là đúng hoặc sai tương ứng, khi chúng được sử dụng trong một câu lệnh if

In this article

  • Truthy
  • Falsy

Truthy

Tất cả các giá trị trong Liquid là “truthy” (đúng), ngoại trừ nilfalse.

Trong ví dụ dưới đây, chữ “Tobi” không phải là một kiểu boolean, nhưng nó là truthy trong một điều kiện:

{% assign name = "Tobi" %}
{% if name == true %}
  This text will always appear if "name" is defined.
{% endif %}

Các chuỗi, kể cả khi rỗng thì vẫn là truthy. Ví dụ dưới đây sẽ cho kết quả tags HTML rỗng nếu settings.fp_heading là rỗng.

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

Để tránh điều này, bạn có thể kiểm tra xem chuỗi có phải là blank không, như sau:

{% unless settings.fp_heading == blank %}
    <h1>{{ settings.fp_heading }}</h1>
{% endunless %}

Một EmptyDrop cũng là truthy. Trong ví dụ dưới đây, nếu settings.page là một chuỗi rỗng hoặc được thiết lập cho một đối tượng đã bị ẩn hoặc bị xóa, bạn sẽ kết thúc bằng một EmptyDrop. Kết quả là một

rỗng không mong muốn

For this input:

{% if pages[settings.page] %}
<div>{{ pages[settings.page].content }}</div>
{% endif %}

The output is:

<div></div>

Falsy

Những giá trị duy nhất là falsy trong Liquid là nilfalse.

nil là kết quả được trả về khi một đối tượng Liquid không có bất cứ cái gì để trả về. Ví dụ, nếu một bộ sưu tập không có một hình ảnh nào, collection.image sẽ được thiết lập là nil. Từ đó, nó là “falsy”, bạn có thể làm như sau:

{% if collection.image %}
// output collection image
{% endif %}

The value false is returned through many Liquid object properties such as product.available.

results matching ""

    No results matching ""