参见英文答案 >
Are generics specialized during compilation or they are just like java generics only for compile time checks? 1个
我想弄清楚 Swift仿制药是如何工作的.具体来说,我没有找到关于编译模型的精确陈述.在C中,泛型(模板)不是单独编译的,因为它们是针对每个调用站点实例化的(至少在原理上).相反,Java泛型是单独编译的. Swift的情况是什么,涉及单独编写泛型?
我想弄清楚 Swift仿制药是如何工作的.具体来说,我没有找到关于编译模型的精确陈述.在C中,泛型(模板)不是单独编译的,因为它们是针对每个调用站点实例化的(至少在原理上).相反,Java泛型是单独编译的. Swift的情况是什么,涉及单独编写泛型?
解决方法
它是两者的组合,取决于优化器决定将获得更好的性能.他们在
WWDC Session 404: Advanced Swift年底前谈论它.幻灯片说:
Swift can run generic code directly
Optimizer can produce specialized versions of generic code at will
- Separate compilation of generics
- Faster compiles
- flexibility to Trade code size for speed