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
}