美文网首页
Swift 5.x 泛型下标

Swift 5.x 泛型下标

作者: ShenYj | 来源:发表于2020-07-11 10:24 被阅读0次
  • 下标可以是泛型, 它们可以包含泛型where分句. 你可以在subscript后用尖括号来写类型占位符, 你还可以在下标代码块花括号前写泛型where分句.

e.g.

protocol Container {
    associatedtype ItemType
    mutating func append(_ item: ItemType)
    var count: Int { get }
    subscript(i: Int) -> ItemType { get }
}

extension Container {
    subscript<Indices: Sequence>(indices: Indices) -> [ItemType]
        where Indices.Iterator.Element == Int {
            var result = [ItemType]()
            
            for index in indices {
                result.append(self[index])
            }
            return result
    }
}
  • 在尖括号中的泛型形式参数Indices必须是遵循标准库中Sequence协议的某类型;
  • 下标接收单个形式参数, indices, 他是一个Indices类型的实例
  • 泛型where分句要求序列的遍历器必须遍历Int类型的元素. 这就保证了序列中的索引都是作为容器索引的相同类型.
  • 合在一起, 这些限定意味着传入的indices形式参数是一个整数的序列.

相关文章

  • Swift 5.x 泛型下标

    下标可以是泛型, 它们可以包含泛型where分句. 你可以在subscript后用尖括号来写类型占位符, 你还可以...

  • Swift 4新功能-4

    八、泛型下标 下标现在可以有泛型参数和返回类型.最权威的例子莫过于表示 JSON 数据: 你可以定义一个泛型下标来...

  • 泛型下标

  • Swift 5.x 泛型类型

    除了反省函数, Swift允许你定义自己的泛型类型. 它们是可以用于任意类型的自定义类、结构体、枚举, 和Arra...

  • Swift-泛型笔记

    Swift 泛型 Swift 提供了泛型让你写出灵活且可重用的函数和类型。 Swift 标准库是通过泛型代码构建出...

  • [ WWDC2018 ] - Swift 泛型 Swift Ge

    Swift 泛型历史 我们首先来回顾一下 Swift 中对于泛型支持的历史变更,看看现在在 Swift 中,泛型都...

  • Swift 运用协议泛型封装网络层

    Swift 运用协议泛型封装网络层 Swift 运用协议泛型封装网络层

  • 2021-12-01

    swift5基本语法-泛型函数和泛型类型 Swift中泛型可以将类型参数化,提高代码复用率,减少代码量。 一、泛型...

  • swift 泛型

    Swift-泛型学习和实例总结 - Mazy's Blog - CSDN博客 Swift中的泛型 - 简书

  • 使用Web浏览器编译Swift代码,及Swift中的泛型

    使用Web浏览器编译Swift代码,及Swift中的泛型 使用Web浏览器编译Swift代码,及Swift中的泛型

网友评论

      本文标题:Swift 5.x 泛型下标

      本文链接:https://www.haomeiwen.com/subject/mnbbcktx.html