布尔表达式
编程过程中,我们把返回true或false的表达式,统称为布尔表达式。这些表达式,通常跟在if或unless等分支语法后面。
哪些情况下返回true?
除了nil和false以外,其他所有的值返回都是true。
在如下示例中,虽然test变量不是布尔类型,但在if语句的返回为true:
{% assign test = '测试' %}
{% if test %}
看到这个说明返回是true。
{% endif %}
String(字符串),就算是空字符串,在布尔表达式中,仍然返回true。
例如,在没设置关店说明时,shop.close_desc是空字符串:
输入:
{% if shop.close_desc %}
<h1>{{ shop.close_desc }}</h1>
{% endif %}
输出:
<h1></h1>
如果想检测字符串是否为空,可以使用blank对比:
{% unless shop.close_desc == blank %}
<h1>{{ shop.close_desc }}</h1>
{% endunless %}
哪些情况下返回false?
只有当值为nil或false时,才会返回false。
当指定主题对象没有值可返回时,就会返回nil。例如,当新增的商品,没有设置橱窗图片时,product.feature_image会返回nil,在布尔表达式中就会返回false:
{% if product.feature_image %}
<!-- 输出橱窗图片 -->
{% endif %}
在主题对象中,有很多布尔类型的属性,都可能返回false。
例如product.available,当返回false时,说明此商品不可出售。
总结
| 返回true | 返回false | |
|---|---|---|
| true | √ | |
| false | √ | |
| nil | √ | |
| string | √ | |
| string(为空时) | √ | |
| 0 | √ | |
| 1或2或3.14 | √ | |
| array | √ | |
| array(为空时) | √ |
以上内容仍未解决您的问题?
联系在线客服