use*_*840 3 arrays generics swift swift-playground
我正在尝试使用任何类型T的数组声明属性.但是我收到了编译错误 - 使用未声明的类型'T'.下面是我用2个属性创建的类.
class Product {
var productName: String;
var items: Array<T>
}
Run Code Online (Sandbox Code Playgroud)
请让我知道如何在Swift中使用Generics声明任何类型的数组.我尝试过以下选项:
{
var items: Array<T>;
var items = Array<T>();
var items = [T]();
}
Run Code Online (Sandbox Code Playgroud)
您必须在类声明中定义泛型类型:
class Product<T> {
var productName: String;
var items: Array<T>
}
Run Code Online (Sandbox Code Playgroud)
当然,由于该类具有未初始化的非可选变量,因此您必须将它们内联初始化:
class Product<T> {
var productName: String = ""
var items: Array<T> = Array<T>()
}
Run Code Online (Sandbox Code Playgroud)
让他们成为可选项:
class Product<T> {
var productName: String?
var items: Array<T>?
}
Run Code Online (Sandbox Code Playgroud)
定义初始化程序:
class Product<T> {
var productName: String
var items: Array<T>
init(productName: String, items: Array<T>) {
self.productName = productName
self.items = items
}
}
Run Code Online (Sandbox Code Playgroud)
或它们的任何组合.
请注意,除非您在同一行中放置多个语句,否则swift中不需要使用尾随分号
| 归档时间: |
|
| 查看次数: |
6430 次 |
| 最近记录: |