Protocol和泛型的台前幕后
泛型编程和面向对象编程一样,都可以定义接口和实现多态。对于面向对象来说,接口是显式的,是基于类型定义和方法签名的,多态是发生在运行时的;而对于泛型编程,接口则是隐式的,是为了支持算法实现的,多态则是发生在编译期的。 但在Swift里,泛型编程对接口的约束却要通过protocol明确表达出来,而不能通过算法的实现去隐式的推导。因此,我们使用泛型编程来描述类型无关的逻辑,使用protocol来约束类型的特定行为。把它们搭配在一起,就同时拥有了静态方法的性能和类似运行时的动态行为。
SERIES 7 Episodes 00:56:38 hrs
0% Complete