• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift里Set(三)InspectingaSet

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

isEmpty

  /// A Boolean value that indicates whether the set is empty.
  @inlinable
  public var isEmpty: Bool {
    return count == 0
  }

count

  /// The number of elements in the set.
  ///
  /// - Complexity: O(1).
  @inlinable
  public var count: Int {
    return _variant.count
  }

最后会返回__RawSetStorage里的count

  /// The current number of occupied entries in this set.
  @usableFromInline
  @nonobjc
  internal final var _count: Int

在修改Set的时候,会不断调整这个值。

  internal mutating func _delete(at bucket: Bucket) {
    ...
    _storage._count -= 1
    ...
  }

  internal func _unsafeInsertNew(_ element: __owned Element) {
    ...
    _storage._count &+= 1
  }

capacity

  /// The total number of elements that the set can contain without
  /// allocating new storage.
  @inlinable
  public var capacity: Int {
    return _variant.capacity
  }

注意不是实际占用内存的大小,因为要预留部分空闲空间,防止性能下降。

    storage._capacity = _HashTable.capacity(forScale: scale)

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
【Swift学习】Swift编程之旅(一)发布时间:2022-07-14
下一篇:
Swift关于Any,AnyObject,AnyClass的区别与联系发布时间:2022-07-14
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap