我看到了这个工作代码(Swift 1.2)
var itemToPrint : Printable
itemToPrint = 105.0
println( itemToPrint )
所以我尝试了这个:
protocol AProtocol {
var value: Int
}
var myVarProtocol: AProtocol
myVarProtocol = 155
我收到了错误
:10:17:错误:无法将“Int”类型的值赋给“AProtocol”类型的值
我需要对AProtocol
做什么才能使协议作为一种类型工作(如果我的措辞正确的话)?
答案 0 :(得分:0)
这是可以预料到的,因为您创建的变量可以存储符合您协议的任何类型,但您尝试为其分配类型(Int
)不
在这种情况下,您必须手动将AProtocol
的一致性添加到Int
。请记住,您已经定义了一个协议,声明任何符合它的类型都必须实现value
变量,因此您必须为value
添加任何类型的定义我想在这里工作。
protocol AProtocol {
var value: Int { get }
}
extension Int: AProtocol {
var value: Int {
return self
}
}
var myVarProtocol: AProtocol
myVarProtocol = 155
print(myVarProtocol) // 155