标签: swift generics
实现泛型有三种方法:
只是一个用于编译时检查的工具,但是每个模板实例 被编译为相同的字节/汇编代码实现(Java,如注释“类型擦除”实现中所述)
每个模板实例化都编译为专门的代码(C ++,C#)
#1和#2的组合
在Swift中实现了哪一个?
答案 0 :(得分:9)
Swift首先编译一个执行动态类型检查的实现,但是当速度与代码大小权衡有意义时,优化器可以选择克隆特定类型的专用实现。理想情况下,这可以获得始终克隆的90%的加速,而不会使代码大小和编译时间爆炸。