我想从数组中获取一系列对象。像这样:
var array = [1,3,9,6,3,4,7,4,9]
var newArray = array[1...3] //[3,9,6]
以上将访问索引1到3的元素。
还有:
newArray = array[1,5,3] // [3,4,6] would be cool
这将分别从索引1,5和3中检索元素。
答案 0 :(得分:1)
最后一个例子可以使用PermutationGenerator
:
let array = [1,3,9,6,3,4,7,4,9]
let perms = PermutationGenerator(elements: array, indices: [1,5,3])
// perms is now a sequence of the values in array at indices 1, 5 and 3:
for x in perms {
// iterate over x = 3, 4 and 6
}
如果你真的需要一个数组(只是序列可能足够你的目的),你可以将它传递给Array
的init方法,该方法采用一个序列:
let newArray = Array(perms)
// newArray is now [3, 4, 6]
对于您的第一个示例 - 使用数组,它将按原样运行。但它从你的评论中看起来就像你用字符串一样尝试它。 Swift中的字符串不是随机访问的(出于与unicode相关的原因)。因此,您不能使用整数,它们具有特定于字符串的双向索引类型:
let s = "Hello, I must be going"
if let i = find(s, "I") {
// prints "I must be going"
println(s[i..<s.endIndex])
}
答案 1 :(得分:0)
这有效:
var n = 4
var newArray = array[0..<n]
在 Slicing Arrays in Swift 的任何情况下,你都可以在Swift中找到一个非常好的Python切片示例。