我试图理解 swift 的 vtable 和见证表之间的区别。理论上,它应该是允许动态分派类方法的相同机制。SIL 文档包含两个段落,表明这些段落有所不同。但这对我来说有点困惑。
那么,这两者到底有什么区别呢?
小智 3
根据我的理解,正如你所说,vtable 允许动态分派类方法。该表是在编译时生成的。
另一方面,见证表允许动态分派泛型类型,因此该表有所不同,因为它需要映射泛型条目以实现相同的结果:动态分派。这些表包含编译器用来“生成运行时调度表”的信息。该信息未在编译时定义。如果您检查文档,见证表会映射基本协议、它所需的方法以及关联类型及其协议一致性(关联类型的)。
不确定我是否正确理解你的问题?
| 归档时间: |
|
| 查看次数: |
1571 次 |
| 最近记录: |