我有一个我定义的数组
var array: [Int] = Array(1...24)
然后我添加
array.insert(9999, atIndex: 0)
我想做点什么
var array: [Int] = Array(9999...9999,1...24)
这可能吗?
答案 0 :(得分:2)
您可以简单地连接从每个范围创建的数组:
let array = Array(10 ... 14) + Array(1 ... 24)
可替换地:
let array = [10 ... 14, 1 ... 4].flatMap { $0 }
具有不创建中间数组的小优势 (正如您在开源实现https://github.com/apple/swift/blob/master/stdlib/public/core/SequenceAlgorithms.swift.gyb中看到的那样)。
答案 1 :(得分:1)
对于范围数组,您将数组定义为


 let array:[Range< Int>] = [0 ... 1,5。 ..100]



 依旧等等。

答案 2 :(得分:1)
正如MartinR所提到的,你可以简单地使用+
运算符来表示数组;如果这个方法是你的答案,那么这个帖子就是重复的(见MartinR:s link),应该关闭。
如果您明确希望一次使用多个范围初始化Int
数组(请参阅hola:s关于范围数组的答案),您可以按如下方式使用reduce
let arr = [1...5, 11...15].reduce([]) { $0.0 + Array($0.1) }
或者,flatten
var arr = Array([1...5, 11...15].flatten())
以上两者都会产生以下结果
print(arr.dynamicType) // Array<Int>
print(arr) // [1, 2, 3, 4, 5, 11, 12, 13, 14, 15]