当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Swift ArraySlice init(_:)用法及代码示例


初始化器

init(_:)

创建一个包含序列元素的数组。

声明

init<S>(_ s: S) where Element == S.Element, S : Sequence

参数

s

要转换为数组的元素序列。

详述

您可以使用此初始化程序从符合 Sequence 协议的任何其他类型创建数组。例如,您可能希望创建一个包含 1 到 7 整数的数组。在一个范围内使用此初始化程序,而不是在数组文字中键入所有这些数字。


let numbers = Array(1...7)
print(numbers)
// Prints "[1, 2, 3, 4, 5, 6, 7]"

您还可以使用此初始化程序将复杂的序列或集合类型转换回数组。例如,字典的keys 属性不是具有自己存储空间的数组,它是一个集合,仅在访问字典时映射其元素,从而节省分配数组所需的时间和空间。但是,如果您需要将这些键传递给采用数组的方法,请使用此初始化程序将该列表从其类型 LazyMapCollection<Dictionary<String, Int>, Int> 转换为简单的 [String]


func cacheImagesWithNames(names: [String]) {
    // custom image loading and caching
 }


let namedHues: [String: Int] = ["Vermillion": 18, "Magenta": 302,
        "Gold": 50, "Cerise": 320]
let colorNames = Array(namedHues.keys)
cacheImagesWithNames(colorNames)


print(colorNames)
// Prints "["Gold", "Cerise", "Magenta", "Vermillion"]"

可用版本

iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+

相关用法


注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 ArraySlice init(_:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。