- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
根据文档,Swift 的 Dictionary
类型具有名为 underestimatedCount
的属性:
A value less than or equal to the number of elements in the collection.
有人知道为什么在维斯特洛这被认为有用吗??!
让我感到困惑...
最佳答案
总结:从技术上讲,underestimatedCount
属于Sequence
,被Collection
继承,而字典
。 Dictionary
不会覆盖返回零的默认实现。
查看源代码,似乎 underestimatedCount
被用作一个指标,用于确定向可变集合添加新项目时的增长量。
这是来自 StringCore.Swift 的片段:
public mutating func append<S : Sequence>(contentsOf s: S)
where S.Iterator.Element == UTF16.CodeUnit {
...........
let growth = s.underestimatedCount
var iter = s.makeIterator()
if _fastPath(growth > 0) {
let newSize = count + growth
let destination = _growBuffer(newSize, minElementWidth: width)
同样,来自StringCharacterView.swift :
public mutating func append<S : Sequence>(contentsOf newElements: S)
where S.Iterator.Element == Character {
reserveCapacity(_core.count + newElements.underestimatedCount)
for c in newElements {
self.append(c)
}
}
或者更好,来自 Arrays.swift.gyb :
public mutating func append<S : Sequence>(contentsOf newElements: S)
where S.Iterator.Element == Element {
let oldCount = self.count
let capacity = self.capacity
let newCount = oldCount + newElements.underestimatedCount
if newCount > capacity {
self.reserveCapacity(
Swift.max(newCount, _growArrayCapacity(capacity)))
}
_arrayAppendSequence(&self._buffer, newElements)
}
奇怪的是,我只能在 Sequence 中找到 underestimatedCount
的一个实现。 , 而那个返回零。
此时 underestimatedCount
似乎对集合/序列的自定义实现具有更多值(value),至于标准 Swift 集合,Apple 已经对这些集合的增长有了很好的了解。
关于swift - Swift 词典中的 underestimatedCount,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39112934/
根据文档,Swift 的 Dictionary 类型具有名为 underestimatedCount 的属性: A value less than or equal to the number of
我有一个 tableView,它的数据源是计算数组allItems: var pendingItems: [Item] = [] var loadingItems: [Item] = []
我是一名优秀的程序员,十分优秀!