Skip to main content

Truthy and 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

Truthy là gì?

Tất cả các giá trị trong Liquid là “truthy” (đúng), ngoại trừ nil và false. 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 tobi = ‘Tobi’ %}
{% if tobi %}

This will always be true.

{% 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. Đầu vào

{% if settings.fp_heading %}
<h1>{{ settings.fp_heading }}</h1>
{% endif %}

Đầu ra

<h1></h1>

Để tránh điều này, bạn có thể kiểm tra xem chuỗi có phải là blank(trống) 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 <div> rỗng không mong muốn.

Đầu vào

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

Đầu ra

<div></div>

Falsy là gì? Những giá trị duy nhất là falsy trong Liquid là nil và false. 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 %}

Giá trị false có sẵn nhiều đặc tính của giá trị available như

product.available.

Tóm Tắt

Bảng dưới đây tóm tắt những gì là truthy hoặc falsy trong Liquid.