推荐文章:🐕 Why using isEmpty is faster than checking count == 0 - www.hackingwithswift.com

编辑简评:`Swift String` 中为什么使用 `isEmpty` 会比判断 `count == 0` 快?该文作者从 `count` 的工作原理中进行分析和对比。
- `Swift` 字符串是复杂的字符集合,单个字符可能是由多个字符进行组合形成,例如 `🇬+🇧=🇬🇧`,但是 `"🇬🇧".count == 1`。每次检查一个字符所需要的最长时间为 `O(n^2)`,因此如果计算的 `String` 很长,则 `count` 会需要较长的计算时间。
- `isEmpty` 的计算则是检查 `String` 起始索引等于结束索引则为空,时间为 `O(1)`。

同时作者提醒,在 `arrays, sets, dictionaries` 没有这种情况。但是建议使用 `isEmpty` 去判空,语义更为清晰,并且有利于 `String` 习惯用上 `isEmpty` 而不是`count`。`SwiftLint` 和 `SwiftFormat` 都有检查该情况。

更多优质内容,请查看本周周报:
展开
评论