2012-06-20 32 views
0

是否可以將變量連接到它自己?在LESS中附加變量本身

@varA: "hello "; 
@varB: "world"; 

@varA: "@{varA}@{varB}"; 

(輸出的 「Hello World」)

我能夠做到這一點,

@varA: "hello "; 
@varB: "world"; 

@varC: "@{varA}@{varB}"; 

但一些有關自己使用的變量似乎打破一切。這是一個小錯誤?

+0

你有沒有注意到我的答案?你投了你的票,但這是不正確的,你可能會考慮投票,以便其他人知道這是可能的(並且在1.3中,你只是有錯誤的語法)。 – jonschlinkert

+0

您是否注意到我的問題?我在後半部分明確指出,我不打算按照你的建議做答案。我想附加一個變量*給自己*。我認爲我的問題很明確地說明了這一點。 –

+0

也許你需要澄清你的實際(第一)SO問題,這是「可以連接一個變量本身?」答案是肯定的。然後你說:「但是,有關使用變量本身似乎打破了一切」這是一個聲明,我甚至不知道你的意思。實現問題中所陳述的內容我沒有任何問題。所以你想讓我專注於你的第二個問題,「這是一個很小的錯誤嗎?」。因爲答案是「不」。而你的語法不正確。 – jonschlinkert

回答

2

剛裝少嘗試一下,的確,嘗試它的第一種方式,我得到

stack_overflowError: Maximum call stack size exceeded in <file> 
1 @varB: "world"; 

事實上,本身會導致同樣的錯誤分配變量。我已經環顧了源頭,我無法確定是什麼原因造成的(儘管由於錯誤的性質,我們可以很容易地猜出)。就文檔而言,它提到變量是常量,但是在做了一些測試之後,我發現實際上可以定義一個與舊的名稱相同的新變量。所以:

@vA = "hi"; 
@vA = "hello"; 

實際上會工作,並且當您以後使用vA時,它將具有值「hello」。 我建議你簡單地使用一個臨時變量,如果你真的發現你需要它。

只要保留@tmp並在需要時使用它,只要您不嘗試根據自身定義新的@tmp即可。

-1

試試這個

@varA: hello; 
@varB: world; 

@varC: @[email protected]; 


.test { 
    text: @varC; 
} 

編譯

.test { 
    text: hello world; 
} 

時或者嘗試這一點,導致了這一點:

@varA: hello; 
@varB: world; 

@varC: "@{varA} @{varB}"; 


.test { 
    text: @varC; 
} 

爲了得到這個:

.test { 
    text: "hello world"; 
}