Swift关键字final、typealias、mutating、convenience

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25639809/article/details/85006898

1.final
使用场景:权限控制,也就是说这个类或方法不希望被继承和重写

final class Book {}
final func method() {}

2typealias:
为此类型声明一个别名.和 typedef类似

typealias TestString = String
let testStr = TestString(format: "%d", 1)
print(testStr)

3.mutating
作用:写在func前面,以便于让func可以修改struct和protocol的extension中的成员的值。 如果func前面不加mutating,struct和protocol的extension中的成员的值便被保护起来,不能修改

mutating func method() {}

4.convenience
用于增加init方法
使用convenience的初始化方法必须调用同一个类中的designated初始化完成设置
使用convenience的初始化方法不能被子类重写或者是从子类中以super的方式被调用

class Book {
    var name: String
    init(name: String) {
        self.name = name
    }
}

extension Book {
    convenience init(nickName: String) {
        self.init(name: nickName)
    }
}

猜你喜欢

转载自blog.csdn.net/qq_25639809/article/details/85006898
今日推荐