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)

转载于:https://www.cnblogs.com/Rinpe/p/5190029.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值