使用范围订阅数组

可以使用 Range 从 Array 中提取一系列连续元素。

let words = ["Hey", "Hello", "Bonjour", "Welcome", "Hi", "Hola"]
let range = 2...4
let slice = words[range] // ["Bonjour", "Welcome", "Hi"]

使用 Range 订阅数组会返回 ArraySlice。这是 Array 的一个子序列。

在我们的例子中,我们有一个字符串数组,所以我们回到了 ArraySlice<String>

虽然 ArraySlice 符合 CollectionType 并且可以与 sortfilter 等一起使用,但它的目的不是用于长期存储,而是用于瞬态计算:一旦你完成它就应该将它转换回一个数组。

为此,请使用 Array() 初始化程序:

let result = Array(slice)

总结一个简单的例子,没有中间步骤:

let words = ["Hey", "Hello", "Bonjour", "Welcome", "Hi", "Hola"]
let selectedWords = Array(words[2...4]) // ["Bonjour", "Welcome", "Hi"]