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