swift学习笔记(一)protocol和extension
2016-10-27 本文已影响9人
一只特立独行的道哥
1.协议
- 使用protocol来声明一个协议
```
protocol TestProtocol{
var description:String{get}
mutating func printDescritpion()
}
```
- Classes, enumerations,和 structs都可以继承一个协议
```
class TestClass:TestProtocol{
var description: String = "TestClass"
var length: Int {
get{
return self.description.characters.count
}
}
func printDescritpion() {
self.description += "---\(length)"
print(self.description + " \(length)")
}
}
TestClass().printDescritpion()
struct TestStruct: TestProtocol{
var sum = 1024
var description: String = "TestStuct"
mutating func printDescritpion() {
self.description += "---\(sum)"
print(self.description)
}
}
```
2. extension -- 扩展
可以给自定义的类,或已有的cocoa框架提供的类,甚至类库或者框架里面的类添加 新的 **属性(成员变量)或者 方法
-
给已有的类添加
extension String:TestProtocol{ var description : String{ return "the string is \(self)" } mutating func printDescritpion() { self += " fuck you" } }
-
给自定义的类添加
extension TestClass{ func eat(){ print("吃饭饭") } }