控制流(Control flow)

Baklib

发布于:2024-07-07

控制流标签创建决定 Liquid 代码块是否被执行的条件。

if

仅当满足特定条件时才执行代码块true

输入

{% if product.title == "Awesome Shoes" %}
  These shoes are awesome!
{% endif %}

输出

These shoes are awesome!

unless

与之相反——仅当不满足if某个条件时才执行代码块。

输入

{% unless product.title == "Awesome Shoes" %}
  These shoes are not awesome.
{% endunless %}

输出

These shoes are not awesome.

这相当于执行以下操作:

{% if product.title != "Awesome Shoes" %}
  These shoes are not awesome.
{% endif %}

elsif / else

if在或块内添加更多条件unless

输入

<!-- If customer.name = "anonymous" -->
{% if customer.name == "kevin" %}
  Hey Kevin!
{% elsif customer.name == "anonymous" %}
  Hey Anonymous!
{% else %}
  Hi Stranger!
{% endif %}

输出

Hey Anonymous!

case/when

创建一个 switch 语句,当变量具有指定值时执行特定的代码块。case初始化 switch 语句,when语句定义各种条件。

一个when标签可以接受多个值。当提供多个值时,当变量与标签内的任意值匹配时,就会返回表达式。以逗号分隔列表的形式提供值,或使用运算符分隔它们or

else案例末尾的可选语句提供了在没有任何条件满足时执行的代码。

输入

{% assign handle = "cake" %}
{% case handle %}
  {% when "cake" %}
     This is a cake
  {% when "cookie", "biscuit" %}
     This is a cookie
  {% else %}
     This is not a cake nor a cookie
{% endcase %}

输出

This is a cake

提交反馈