我想知道这是否是操场上的错误,或者它应该像这样工作:
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"]
,但游乐场会提供不同的输出 - 写在右边。
我认为在右边我们只能看到最后编辑过的东西,但在第2行和第3行我们可以看到整个类型的数组。
在助理编辑中,我得到[0] "34"
,而我认为它应该是[3] "34"
和其他数组。
答案 0 :(得分:2)
var
指的是可变内容,您也可以为其分配值。
types[]
- 索引的新值,意味着它不应该连接。
对于Ex:
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
答案 1 :(得分:2)
您在["34"]
行之后仅看到types[3..<5] = ["34"]
的原因是,赋值运算符=
返回已分配的值。
其他行显示整个数组,因为+=
运算符返回赋值的结果。