Operators

An operator is a statement that evaluates some code, and makes a decision about what to do next. Operators can be used for comparing two values, inspecting a single value, or evaluating whether or not some code returns true.

For further discussion on how Liquid treats values, see their documentation: Truthiness and falsiness in Liquid.

Comparison operators

If b = 6, the table below illustrates the comparison operators and the way they interact with b:

Operator
Description
Example
Result

==

equal to

b == 6

true

!=

not equal

b != 6

false

>

greater than

b > 5

true

<

less than

b < 6

false

>=

greater than or equal to

b >= 6

true

<=

less than or equal to

b <= 6

true

Examples

{% assign order_qualifies = false %}

{% if order.cancelled_at == blank and cancel_risk %}
  {% assign order_qualifies = true %}
{% endif %}
{% if has_product != true %}
  {% log "Order has no products; skipping" %}
  {% assign send_email = false %}
{% endif %}

Testing for blank, empty

Liquid supports equality/inequality testing a value against blank or empty. In this way, Liquid allows the author to ask, "is this value blank?", or "is this value empty?"

Blank

Quoting from the Rails API:

An object is blank if it's false, empty, or a whitespace string. For example, nil, '', ' ', [], {}, and false are all blank.

Empty

An array, hash, or string can be tested for emptiness. An array is empty if it has no elements; a hash is empty if it has no key-value pairs; a string is empty if its length is zero.

A string that only contains whitespace is not empty, but it is blank!

Contains operator

The contains operator is used to check for the existence of a substring in a string, or for a specific element in an array.

Substring containment

Array element containment

Logical operators

Liquid has two logical operators: and and or.

If b = 3 and c = 6, the table below illustrates the logical operators in Liquid, and the way they interact with b and b:

Operator
Example
Result

and

b < 2 and c < 6

false

or

b < 2 or c < 6

true

Check if both the shipping address and billing are blank

Check if tag equals blank or a customer's tags contains a certain tag

Last updated

Was this helpful?