我正在尝试了解中的泛型文化,因此请写一个小例子。但是它不能编译。
错误:无法推导通用参数'P'
我不明白,因为我做错了。protocol Protocol_1 {
associatedtype T
}
protocol Protocol_A {}
struct SomeStruct_2: Protocol_A {}
struct SomeStruct_1: Protocol_1 {
typealias T = Protocol_A
}
let struct1 = SomeStruct_1()
testFunction(t: struct1) // *Generic parameter 'P' could not be inferred*
func testFunction<P: Protocol_1>(t: P) where P.T : Protocol_A {
}
最佳答案
testFunction中的P.T不符合Protocol_A,但是您可以检查它是否等于Protocol_A。
func testFunction<P: Protocol_1>(t: P) where P.T == Protocol_A {
}
关于ios - 关联类型Swift 3,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40783044/