我遇到了一些问题,这些问题是从其他数组和其他数组的切片中创建一个数组。此处引用的所有数组都是先前声明的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参数传递吗?
答案 0 :(得分:1)
错误消息具有误导性。真正的问题是
"数组数组中的第一个元素0
"
[0, array1, array2, ... ]
不是数组,而是数字。将其更改为[0]
可以解决问题。请注意,表达式可以略微简化为
let bigarray = [[0], array1, array2, array3, array4, array5, Array(array6.dropLast(8))].joined()