gpt4 book ai didi

ios - 如何快速实例化具有不同类型的同一通用协议(protocol)的多个实例?

转载 作者:行者123 更新时间:2023-11-28 13:16:13 28 4
gpt4 key购买 nike

我有一个通用协议(protocol) P,我希望其他类 B 具有该协议(protocol)的不同类型的不同实例。我想模拟以下行为:

protocol P<T> {
func getAll() -> [T]
}

class B {
var foo1: P<Int>

var foo2: P<String>
}

我怎样才能快速完成这个任务?

最佳答案

你不能用 Swift 中的协议(protocol)来做到这一点。你可以做类似的事情:

protocol P {
typealias T
func getAll() -> [T]
}

class C : P {
typealias T = Int
func getAll() -> [T] {
return []
}
}

class D : P {
typealias T = String
func getAll() -> [T] {
return []
}
}

struct B {
var foo1: C
var foo2: D
}

关于ios - 如何快速实例化具有不同类型的同一通用协议(protocol)的多个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28904775/

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