12
A
回答
7
一个重要的一句话:事实证明,需要这样的伎俩很多时候恰好是一个XY-问题(如误会很少变化的语义结果)。通常情况下,没有真正的使用情况下,你真的想要这个(在你减少,而不是总是定义一个默认值(所以它总是存在)被随意覆盖)。所以在使用下面的技巧之前,请确保它不是something else you want actually。
这是很简单的(自V1.4.0),如果您需要为同一范围内提供这样的变量(即全局或局部),它可能已经被定义为:
@bar: 41; // comment/uncomment to test
.define-bar-if-not-defined() {@bar: 42}
.define-bar-if-not-defined(); // exposes a variable only if it's not already in this scope
#using-global-bar {
global-bar: @bar;
}
#using-local-bar {
@bar: 43; // comment/uncomment to test
.define-bar-if-not-defined();
local-bar: @bar;
}
然而,这方法将不起作用,如果您尝试将它用于本地作用域中使用的全局/父作用域变量(并且如果您不确定原始变量可能来自何种范围时需要泛型方法,则可能会出现问题) :
#using-unknown-bar-in-local-scope {
// ... some code ...
.define-bar-if-not-defined(); // won't override local @bar (if any) but always overrides global and parent scope @bar
bar: @bar;
}
在这种情况下,我不知道任何直接的解决方案(没有一些内联的JavaScript黑客可以用在警卫表达中)例如
相关问题
- 1. PHP - 如果未设置变量,则获取帖子变量
- 2. 如果,否则如果没有设置变量来设置正确的变量
- 3. 如果变量为空,则设置Makefile
- 4. 设置环境变量为父目录(如果尚未设置)
- 5. LESS CSS - 在mixin中设置变量
- 6. LESS - 在客户端设置变量
- 7. 如果变量未设置,则缺省值
- 8. 如果未设置变量,则禁用输入字段
- 9. Makefile - 如果变量未设置,则发生错误
- 10. 如果在数组中设置变量,则查找变量?
- 11. 会话变量未设置
- 12. Jquery的变量未设置
- 13. 会话变量未设置
- 14. Autotools PKG_CHECK_MODULES未设置变量
- 15. Android realm.io变量未设置?
- 16. 静态变量未设置?
- 17. 类别变量未设置
- 18. 宏观变量未设置
- 19. vba:powerpoint宏:“变量未设置”
- 20. Bash变量值未设置
- 21. 会话变量未设置
- 22. 未设置引用变量
- 23. 基于CSS class的LESS条件设置LESS变量
- 24. 对象变量或变量未设置
- 25. 如何设置变量值如果
- 26. 如何设置未设置的会话变量?
- 27. 查找()结果为Object变量或With Block变量未设置
- 28. 设置变量
- 29. 设置变量
- 30. 设置变量
无论出于何种原因,这个方法在@导入字符串。尽管可以在样式定义中使用它,但编译器错误说明变量未定义。 – cameronhimself
@cameronhimself这是预期的,因为在mixin之前评估进口。无论哪种方式,到目前为止,我没有看到任何需要这种功能的用例(我只是将这个问题作为一个假设来回答)。对于这种设施的每一个请求通常都是误解变量变量工作的结果(因此这是一个“XY问题”,更多细节参见[#1400](https://github.com/less/less)。 js/issues/1400),[#1706](https://github.com/less/less.js/issues/1706)等)。 –
@cameronhimself换句话说,如果你有一个特定的用例,你认为你需要这种技巧 - 发布它 - 我很确定它可以用更简单的方法解决这个问题。 –