Swift之深入分析字典的下标访问方法的源码调试和汇编实现
生活随笔
收集整理的這篇文章主要介紹了
Swift之深入分析字典的下标访问方法的源码调试和汇编实现
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、字典的內(nèi)存布局
- Swift 中字典具有以下特點(diǎn):
-
- 字典由兩種范型類(lèi)型組成,分別是 Key(必須實(shí)現(xiàn) Hashable 協(xié)議)和 Value;
-
- 提供一組 Key 和 Value,可以向字典中插入一條新的數(shù)據(jù);
-
- 如果 Key 已經(jīng)被插入字典,則可以通過(guò) Key 獲取到 Value;
-
- 可以通過(guò) Key 刪除一條字典中的數(shù)據(jù);
-
- 每個(gè) Key 對(duì)應(yīng),且唯一對(duì)應(yīng)字典中的一個(gè) Value。
- 有很多種方式可以用于存儲(chǔ)這些 Key-Value 對(duì),Swift 中字典采用了使用線(xiàn)性探測(cè)的開(kāi)放尋址法。
- 由于匯編中存在較多對(duì)字節(jié)內(nèi)存布局的直接操作,首先來(lái)了解一下字典的內(nèi)部布局:
- 如果不考慮兼容 ObjC 中的 NSDictionary 的場(chǎng)景,Swift 原生的字典最終內(nèi)部會(huì)存儲(chǔ)一個(gè) __RawDictionaryStorage 類(lèi)的實(shí)例,類(lèi)實(shí)例在 0x0 和 0x8 的偏移分別是它的 isa 指針和引用計(jì)數(shù),因此真正的
總結(jié)
以上是生活随笔為你收集整理的Swift之深入分析字典的下标访问方法的源码调试和汇编实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【数据结构与算法】之深入解析“有效的数独
- 下一篇: SwiftUI之深入解析如何定制视图的动