zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    [ARC080D] Prime Flip
    硬币游戏
    点分治
    OneInDark对众数的爱
    [CF838D] Airplane Arrangements
    网络流总结(转载)
    二分图最大权完美匹配(KM)
    网络流
    FWT
    FFT & NTT
  • 原文地址:https://www.cnblogs.com/Rinpe/p/5190029.html
Copyright © 2011-2022 走看看