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換句話說,如果你有一個特定的用例,你認爲你需要這種技巧 - 發佈它 - 我很確定它可以用更簡單的方法解決這個問題。 –