为什么Swift被设计为不允许协议使用泛型?

时间:2019-05-31 13:56:31

标签: swift generics protocols swift-protocols associated-types

为什么Swift的设计者不允许这样做:

protocol Download<T> {
    var x: T
}

而是强迫我们这样做:

protocol Download {
    associatedtype: T
    var x: T
}

我想是因为这样您可以限制/默认关联类型,这在协议级别的通用参数上是不可能的,但仅此而已?

1 个答案:

答案 0 :(得分:0)

这是因为在编译类型之前必须先定义类型。这是必需的,因为Swift是一种类型安全的语言。