/*1使用protocol来声明一个协议*/protocolExampleProtocol{
var simpleDescription: String {get}
mutaing funcadjust()
}
/*练习:写一个实现这个协议的枚举*/classSimpleClass: ExampleProtocol{
var simpleDescription: String = "A very simple calss."var anotherProperty: Int = 69105funcadjust() {
simpleDescription += " Now 100% adjusted."
}
}
var a = SimpleClass()
a.adjust()
let aDescription = a.simpleDescription
structSimpleStructure: ExampleProtocol{
var simpleDescription: String = "A simple structure"mutatingfuncadjust() {
simpleDescription += " (adjusted)"
}
}
var b = SimpleStructure()
b.adjust()
let bDescription = b.simpleDescription
/*3*/extensionInt: ExampleProtocol{
var simpleDescription: String {
return"The number \(self)"
}
mutatingfuncadjust() {
self += 42
}7
}
print(7.simpleDescription)
/*4*/let protocolValue: ExampleProtocol = a
print(protocolValue.simpleDescription)
//print(protocolValue.anotherProperty) // Uncomment to see the error