Swift:泛型类中的声明

标签 swift generics

假设我有一个泛型类:

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/

相关文章:

java - 如何在不使用 setter 的情况下将值设置为类变量

ios - 在嵌套闭包中声明 weak

ios - 快速通过 Mailjet 发送电子邮件的 Http POST 请求

java - 与 Map 不兼容的类型错误

java - 对 Java 中的不同类型应用通用逻辑

C++ 方法调用模板函数无法调用重载方法

swift - Xcode swift 3 : Timer and Segue View Controller Error

swift - 为什么该操作无法连接到目标类 NSViewController?

ios - Swift:CoreData 和通用的 NSOrderedSet

Java:如何将 List<?> 转换为 Map<String,?>