Swift中扩展的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift中扩展的使用相关的知识,希望对你有一定的参考价值。

import Foundation

/*
扩展
1.使用扩展添加属性, 方法, 可变方法, 构造器, 下标, 嵌套类型
2.可以使一个已有类型符合一个或者多个协议
3.扩展与OC的Category类似
4.扩展并不是派生子类, 因此不支持重写
*/

/*
[修饰符] extension 已有类型 { // 添加新功能 }
修饰符可以省略, 或者是private, internal, public其中之一,
类型可以是枚举, 结构体和类其中之一

注意: 通过扩展为已有类型添加了新功能, 那个新功能在该类型的所有已有实例中都是可用的
*/

/*
通过扩展让已有的类型遵守一个或者多个协议
语法格式:
[修饰符] extension 已有类型: 协议1, 协议2 { // 添加新功能 }
*/

extension String
{
    // 扩展一个计算属性
    var length: Int {
        get {
            return self.characters.count
        }
    }
    
    // 扩展一个构造器
    init(str: String)
    {
        self = str
    }
    
    // 扩展一个方法
    func getlength() -> Int
    {
        return self.characters.count
    }
    
    // 扩展一个静态方法
    static func show() -> Void
    {
        print("I‘m String")
    }
}

var str: String = "Rinpe"
var str2 = String(str: "Lala")

print(str.length)
print(str.getlength())
print(String.show())
print(str2)

以上是关于Swift中扩展的使用的主要内容,如果未能解决你的问题,请参考以下文章

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

如何将这个 Objective-C 代码片段写入 Swift?

有人可以在快速数组中给出“如果不存在则追加”方法的片段吗?

swift常用代码片段

swift 代码片段

swift 为什么我们有一个片段。我认为这有助于我们在另一个页面中有一个代码。