考虑下面的层次结构
public protocol Entity{
associatedtype T
var id:T { get set }
}
open class EntityBase<T>: Entity
{
public var id:T
}
class Car: EntityBase<Int8>
{
var test : String
}
和通用函数:
public func foo<T:AnyObject, Tkey: Any>(id: Any) throws -> T? where T: (Entity){
}
我正在寻找的是泛型函数foo将'Tkey'类型约束为与Entity 'id'属性类型相同的类型(将是Int8)
我已经将'T'的约束设置为'Entity'对象,但如何将'Tkey'约束为Entity的id类型?
1条答案
按热度按时间huwehgph1#
如果为了清楚起见,我们将协议中的关联类型重命名为
那么函数签名可以写成