如何在带有 Liquid 的 if 语句中使用多个参数
Posted
技术标签:
【中文标题】如何在带有 Liquid 的 if 语句中使用多个参数【英文标题】:How to use multiple arguments in an if statement with Liquid 【发布时间】:2014-05-28 02:04:44 【问题描述】:我想在 Liquid 中使用带有多个条件的if
语句。比如:
% if (include.featured == "true" and product.featured == "true") or (include.featured == "false" and product.featured == "false") %
多个条件似乎不起作用。是我语法错误还是 Liquid 无法处理这种 if 语句?
【问题讨论】:
在您的特定示例中,您可以使用% if include.featured == product.featured %
【参考方案1】:
另一种可以浓缩的方式是结合 else if 语句,并且布尔值在评估 true 时不一定需要“==”:
% if include.featured and product.featured %
% assign test = true %
% elsif include.featured == false and product.featured == false %
% assign test = false %
% endif %
【讨论】:
elseif 拼写为 elsif 代表 jekyll - 否则这对我很有帮助。【参考方案2】:不幸的是,Liquid 的布尔代数实现很差。
使用 Liquid 的 operators 和 tags,这是一种肮脏的实现方式:
% if include.featured == true and product.featured == true %
% assign test = true %
% endif %
% if include.featured == false and product.featured == false %
% assign test = true %
% endif %
% if test %
Yepeeee!
% endif %
【讨论】:
您也可以使用 if/elsif 将所有内容放在一起。 '||'也变成“或”:~)以上是关于如何在带有 Liquid 的 if 语句中使用多个参数的主要内容,如果未能解决你的问题,请参考以下文章