无偿使用泛型

时间:2017-08-04 20:28:46

标签: swift generics

我正盯着前同事的代码(在扩展程序中),如下所示:

func set<Object: SomeProtocol>(object value: Object) {

与普通旧版本相比,带有泛型的签名有什么优势?

func set(object value: SomeProtocol) {

1 个答案:

答案 0 :(得分:2)

作为一种模式,您的前同事的版本更灵活,因为它应该适用于任何类型的协议。例如,具有关联类型的协议将不适用于您的版本:

// error: protocol 'Equatable' can only be used as a generic constraint because it has Self or associated type requirements
func foo(bar: Equatable) {}