一尘不染

Swift:通用类中的声明

swift

假设我有一个通用类:

class SomeClass<Element> {
  // What is the difference between this:
  var array: [SomeClass]!

  // and this declaration:
  var array2: [SomeClass<Element>]!
}

这些声明之间有什么区别?


阅读 228

收藏
2020-07-07

共1个答案

一尘不染

没有泛型参数就不能存在泛型类型,因此省略泛型类型意味着您希望编译器推断该类型。

在这种情况下,要推断的逻辑类型为Element

请注意,这仅适用SomeClass于您使用了内部SomeClass声明。它不适用于其他泛型类。

可以在变量声明中使用类似的通用参数推断:

let instance: SomeClass = SomeClass<Int>()
let array: Array = [1] // Array<Int>
2020-07-07