协议中的 var 作为特定协议
var in protocol as specific protocol
如何在 swift 上描述协议中的变量
任何类型,但支持特定协议
像这样
protocol MyProtocol: class {
var itemsList: AnyObject where Collection { get } // AnyObject supports a Collection protocol
}
也许你想要:
protocol MyProtocol: class {
associatedtype T: Collection
var itemsList: T { get }
}
如果您希望 T
也绝对是一个对象(而不是 struct
),那么您必须等待 this proposal 使其成为语言。
如果您希望 class 满足此协议且 class 的定义中未指定 T
,请使 class 通用。
class C<T: Collection>: MyProtocol {
let itemsList: T
init(_ itemsList: T) {
self.itemsList = itemsList
}
}
let x = C([1,2,3])
如何在 swift 上描述协议中的变量 任何类型,但支持特定协议
像这样
protocol MyProtocol: class {
var itemsList: AnyObject where Collection { get } // AnyObject supports a Collection protocol
}
也许你想要:
protocol MyProtocol: class {
associatedtype T: Collection
var itemsList: T { get }
}
如果您希望 T
也绝对是一个对象(而不是 struct
),那么您必须等待 this proposal 使其成为语言。
如果您希望 class 满足此协议且 class 的定义中未指定 T
,请使 class 通用。
class C<T: Collection>: MyProtocol {
let itemsList: T
init(_ itemsList: T) {
self.itemsList = itemsList
}
}
let x = C([1,2,3])