控制流(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