swift中判空到底用.count 还是 .isEmpty

swift中判空到底用.count 还是 .isEmpty

swift 中.count 方法时间复杂度到底是多少


swift中有时能看到用 xxx.count == 0 这种方式,判断一个字符串/字典/数组是否为空,也能用 xxx.isEmpty 属性是否为空,网上有人认为要用isEmpty而不是count来判断,因为后者需要遍历;

有博客 jianshu.com/p/77f8d6563 认为 ”字符串是字符的集合,也遵循了RandomAccessCollection 协议“,则两者时间复杂度都为1,都可以用。


从苹果官方文档来看,各个数据结构如下

字符串 String ,不支持 RandomAccessCollection


String支持的协议列表

swift库中String类对于.count方法的注释如下所示

/// The number of elements in the collection.
    /// To check whether a collection is empty, use its `isEmpty` property
    /// instead of comparing `count` to zero. Unless the collection guarantees
    /// random-access performance, calculating `count` can be an O(*n*)
    /// operation.
    /// - Complexity: O(1) if the collection conforms to