iOS swift 数组(Array ) 协议 -荔枝

267 阅读1分钟

ios swift 基础 合集- 荔枝 点击查看更多

  • extension Array : RangeReplaceableCollection 提供了替换集合中一个连续区间的元素的能力

extension Array : RangeReplaceableCollection {
}
  • extension Array : CustomReflectable Mirror反射

extension Array : CustomReflectable {
    /// A mirror that reflects the array.
    public var customMirror: Mirror { get }
}
  • extension Array : ExpressibleByArrayLiteral 字面量表达

extension Array : ExpressibleByArrayLiteral {
}
  • CustomStringConvertible, CustomDebugStringConvertible description描述
extension Array : CustomStringConvertible, CustomDebugStringConvertible {
    public var description: String { get }
    public var debugDescription: String { get }
}
  • extension Array : RandomAccessCollection, MutableCollection 继承 Collection

随机存取集合类型RandomAccessCollection

可变集合协议,支持原地修改元素MutableCollection

extension Array : RandomAccessCollection, MutableCollection {
}
  • extension Array : Equatable 判断是否相等

extension Array : Equatable where Element : Equatable {

    @inlinable public static func == (lhs: [Element], rhs: [Element]) -> Bool

}
  • extension Array : Hashable

extension Array : Hashable where Element : Hashable {
    @inlinable public func hash(into hasher: inout Hasher)
    public var hashValue: Int { get }
}

Hashable 继承 Equatable。Swift特性你可以使用自定义的类型作为合集的值或者字典的key,只需要让他遵循Hashable协议

  • extension Array : Encodable Codable 将模型对象转换为 JSON 或者是其它的数据格式

extension Array : Encodable where Element : Encodable {
    public func encode(to encoder: Encoder) throws
}
  • extension Array : Decodable Codable 将模型对象转换为 JSON 或者是其它的数据格式

extension Array : Decodable where Element : Decodable {
    public init(from decoder: Decoder) throws
}
  • Swift集合协议大家族构成图

7827369-947a057262f7ea1a.webp

  • String ,Array Collection 区分

String.png

参考 :blog.feijidui.com/iOS-swift-c… juejin.cn/post/699471…