2014-06-05 113 views
0

我不知道這是否操場bug或者它應該像這樣的工作:遊樂場錯誤輸出

var types = ["0", "1", "2"]  // ["0","1","2"] 
    types += "3"     // ["0","1","2","3"] 
    types += ["4", "5"]   // ["0","1","2","3","4","5"] 
    types[3..5] = ["34"]   // ["34"] 

在我看來在最後一行types應該包含["0","1","2","34","5"],但操場給出不同的輸出 - 寫在右邊。

我認爲在右邊我們只能看到最後編輯過的東西,但是在第二行中我們可以看到整個類型的數組。

在助理編輯器中,我得到了[0] "34",而應該是[3] "34"和我認爲其餘的數組。

+0

我想它顯示了LHS的結果。在你的最後一行中,將是'types [3..5]'這是(在賦值後)'[「34」]'。這也與你用助理編輯器獲得的'[0]「34」一致。 – fizruk

回答

2

你所看到的原因只有["34"]types[3..<5] = ["34"]行是因爲賦值運算符=返回已分配的值。

其他行顯示整個數組,因爲+=運算符返回賦值結果。

2

var指的是可變內容並且您還將爲其分配值。

types[] - 索引處的新值,意味着它不應該連接。

對於防爆:

var types = ["0", "1", "2"] 
types += "5" 
types += ["4", "5"] 
types[3..5] = ["34"] // Here considering the index of 3..5 (3 & 4) as one index - Assigning a single value and replaced with the value 
types 

enter image description here