Swift_修饰符(final、override、discard

2018-01-22  本文已影响230人  love紫川

final

//5防止重写  
class finalClass{  
      
    final var applePen = 1  
    final func test(){  
          
    }  
      
    final class func test2(){  
          
    }  
      
}  
  
class finalSub: finalClass {  
      
    //无法重写基类 定义了 final 的属性和函数  
}  

//加到class前,无法被继承  
final class unDo{  
      
}  

@discardableResult

@discardableResult //取消如果不使用返回值的警告  
    class func unUseReuslt(d x:Int) -> Bool {  

mutating

/实例化的时候,实参是不可改变,如果确实需要改的话加 mutating  
    mutating func changeby(justA:Int,justB:Int) {  

convenience便利构造器

//3 指定构造器 和 便利构造器  
class Food {  
    var name: String  
    init(name: String) {  
        self.name = name  
    }  
    //便利构造器  
    convenience init() {  
        self.init(name: "[Unnamed]")  
    }  
  
}  

lazy懒加载(Object-C的懒加载是当使用时才去开辟空间,set get方法)
Swift 懒加载相当于静态空间,只运行一次....只打印一次 a = 1

lazy var a:Int = {  
          
        print("a = 1")  
        return 1  
    }()  
var ja:Jason? = Jason(name:"Jason") //Jason 实例化  
        var aa = ja?.a  
        var aaa = ja?.a  
        var aa2 = ja?.a  

//inout相当于C++的引用

func typeFunc(xx x:inout Int, yy y:inout Int) {  
        let value = x  
        x = y  
        y = value 
    }  
上一篇下一篇

猜你喜欢

热点阅读