10.1类的扩展
2020-06-09 本文已影响0人
LucXion
protocol My {
func aDo() -> Void
}
class MyClass {
var name:String
init() {
name = "JKL"
}
}
extension MyClass {
// 扩展计算属性
var age:Int {
return 5
}
// 扩展构造方法
convenience init(parama:String,parama1:Int) {
self.init()
name = parama
}
// 扩展类方法
class func doSome()->Void {
print("doSome")
}
}
// 在扩展中遵守协议
extension MyClass:My {
func aDo() {
print("aDo")
}
}
extension Int {
static func doSome ()->Void{
print("doSome")
}
// 在扩展中改变self的值,在类中无效
mutating func getDouble()-> Int{
self = self * self
return self
}
}
var my = MyClass.init()
my.aDo()
var a = 5
var b = a.getDouble()