在以下代码中,我想测试
最后一行会出现编译错误。错误为:协议"SpecialController"只能用作通用约束,因为它具有Self或相关类型的要求。
x
是否为特殊控制器SpecialController
。如果是,我想将currentValue
作为SpecialValue
获取。你该如何做?如果不使用强制转换,则可以使用其他技术。最后一行会出现编译错误。错误为:协议"SpecialController"只能用作通用约束,因为它具有Self或相关类型的要求。
protocol SpecialController {
associatedtype SpecialValueType : SpecialValue
var currentValue: SpecialValueType? { get }
}
...
var x: AnyObject = ...
if let sc = x as? SpecialController { // does not compile