【发布时间】:2017-11-16 10:44:52
【问题描述】:
我研究过泛型,但我仍然不明白,为什么要使用它们,什么时候可以使用协议?
例如,检查以下函数:
public static func delete<T>(entity: T, auth: Auth) -> Observable<Void> where T: MSRequestEntity, T: DictConvertable {
// function do something
}
好的,我们有通用实体 T,它符合 MSRequestEntity 和 DictConvertable。
但我们可以简单地这样重写:
public static func delete(entity: MSRequestEntity & DictConvertable, auth: Auth) -> Observable<Void> {
// function do something
}
所以,我的问题是,在什么情况下我应该使用泛型?我有成像的所有情况都可以通过协议轻松处理。
【问题讨论】: