【发布时间】:2019-03-22 22:37:48
【问题描述】:
给定一个没有任何恐惧的协议:
protocol NonFunkyProtocol {}
还有一个协议,其中包含一些严重的恐惧:
protocol FunkyProtocol {
func funky<T: NonFunkyProtocol>(_ closure: (T) -> Void)
}
然后给出这个结构:
struct WeeStruct: FunkyProtocol {
let weeProp: NonFunkyProtocol
func funky<T>(_ closure: (T) -> Void) where T: NonFunkyProtocol {
closure(weeProp)
}
}
我希望它编译为 closure 中预期的参数类型是 T,其中 T 符合 NonFunkyProtocol,weeProp 是 NonFunkyProtocol 类型。
我看到的是这个错误:
我的泛型知识很可能存在漏洞,我哪里错了?
【问题讨论】: