0

我想知道这是游乐场错误还是应该像这样工作:

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"],但是 playground 给出不同的输出 - 写在右边。

我认为在右侧我们只能看到最后编辑的内容,但在第 2 行和第 3 行我们可以看到整个类型数组。

在助理编辑中,我得到[0] "34"了 ,而在我看来它应该是[3] "34"和其他数组。

4

2 回答 2

2

var指的是可变内容,并且您正在重新为其分配值。

types[]- index 处的新值,意味着它不应该是连接的。

例如:

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

在此处输入图像描述

于 2014-06-05T11:30:49.640 回答
2

您只["34"]在该types[3..<5] = ["34"]行之后看到的原因是赋值运算符=返回已分配的值。

其他行显示整个数组,因为+=运算符返回赋值的结果。

于 2014-06-05T11:33:15.517 回答