测试是否定义了Sass函数

测试是否定义了Sass函数,sass,Sass,如何测试Sass函数是否存在 我有一个使用自定义Sass函数的Sass包。但是,在Ruby之外(例如libsass),可能没有定义该函数,并且提供了回退: url:if($bootstrap sass资产助手,twbs字体路径('name.eot'),'name.eot')) 我想将$bootstrap sass asset helper的值设置为true或false,具体取决于是否声明了twbs font path。sass没有此功能。如果需要,您可以这样捏造: @debug if(fo

如何测试Sass函数是否存在


我有一个使用自定义Sass函数的Sass包。但是,在Ruby之外(例如libsass),可能没有定义该函数,并且提供了回退:


url:if($bootstrap sass资产助手,twbs字体路径('name.eot'),'name.eot'))


我想将
$bootstrap sass asset helper
的值设置为true或false,具体取决于是否声明了
twbs font path

sass没有此功能。如果需要,您可以这样捏造:

@debug if(foo() == unquote("foo()"), false, true); // false

@function foo() {
    @return true;
}

@debug if(foo() == unquote("foo()"), false, true); // true
这是因为当您调用一个不存在的函数时,Sass假设您可能正在编写有效的CSS(计算、线性梯度、属性等)。当这种情况发生时,你得到的是一个字符串。因此,如果函数存在,您将获得函数的结果,而不是字符串。所以
foo()==unquote(“foo()”)
只是检查是否有字符串


相关:

当前版本的Sass有一个
功能存在
功能:

这是v3.3(2014年3月)的新功能,因此您可能需要更新Sass gem以利用它

Sass v3.3还添加了其他存在性测试:

variable-exists($name)
global-variable-exists($name)
mixin-exists($name)

谢谢你的胡说八道,你能详细解释一下吗?我已经修改了我的答案,希望有意义。谢谢你的解释!可怕的骇人听闻的黑客:)会等几天再接受,这样我就可以附加赏金了。
variable-exists($name)
global-variable-exists($name)
mixin-exists($name)