加入

时间:2016-09-06 10:56:43

标签: arrays swift

我遇到了一些问题,这些问题是从其他数组和其他数组的切片中创建一个数组。此处引用的所有数组都是先前声明的internal static let [UInt16]。它们都包含在同一个结构中。

internal static let bigarray = [UInt16]([0, array1, array2, array3, array4, array5, [UInt16](array6.prefix(upTo: array6.count-8))].joined())

如果删除涉及array6的内容,那么一切都很糟糕。但是一旦我添加array6切片,Swift就会抱怨 - (减号)运算符是不明确的。这怎么可能?由于array6.count和8都是Ints,所以不应该只进行简单的整数减法并将其作为前缀的upTo参数传递吗?

1 个答案:

答案 0 :(得分:1)

错误消息具有误导性。真正的问题是 "数组数组中的第一个元素0"

[0, array1, array2, ... ]

不是数组,而是数字。将其更改为[0]可以解决问题。请注意,表达式可以略微简化为

let bigarray = [[0], array1, array2, array3, array4, array5, Array(array6.dropLast(8))].joined()