gpt4 book ai didi

swift - 协议(protocol)中的 var 作为特定协议(protocol)

转载 作者:搜寻专家 更新时间:2023-11-01 07:14:33 24 4
gpt4 key购买 nike

如何在swift协议(protocol)中描述一个变量任何类型,但支持特定协议(protocol)

像这样

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使其成为语言。

如果您希望一个类满足此协议(protocol)且在类的定义中未指定 T,请将该类设为泛型。

class C<T: Collection>: MyProtocol {
let itemsList: T

init(_ itemsList: T) {
self.itemsList = itemsList
}
}

let x = C([1,2,3])

关于swift - 协议(protocol)中的 var 作为特定协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42911379/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com