假设我有一个泛型类:
class SomeClass<Element> {
// What is the difference between this:
var array: [SomeClass]!
// and this declaration:
var array2: [SomeClass<Element>]!
}
这些声明有什么区别?
最佳答案
如果没有泛型参数,泛型类型就无法存在,因此省略泛型类型意味着您希望编译器推断该类型。
在这种情况下,要推断的逻辑类型是 Element
。
请注意,这仅适用于您在 SomeClass
声明中使用了 SomeClass
。它不适用于不同的通用类。
可以在变量声明中使用类似的泛型参数推断:
let instance: SomeClass = SomeClass<Int>()
let array: Array = [1] // Array<Int>
关于Swift:泛型类中的声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49802403/