zoukankan      html  css  js  c++  java
  • Swift学习(二):自定义扩展方法(Extensions)

    扩展就是向一个已有的类、结构体或枚举类型添加新功能(functionality)

    扩展可以

    添加计算型属性和计算静态属性
    定义实例方法和类型方法
    提供新的构造器
    定义下标
    定义和使用新的嵌套类型
    使一个已有类型符合某个协议(接口)

    语法

    extension SomeType {
        // 加到SomeType的新功能写到这里
    }
    
    extension SomeType: SomeProtocol, AnotherProctocol {
        // 协议实现写到这里
    }

    范例

    extension String {
        subscript (range: Range<Int>) -> String {
            get {
                let startIndex = advance(self.startIndex, range.startIndex)
                let endIndex = advance(startIndex, range.endIndex - range.startIndex)
                
                return self[Range(start: startIndex, end: endIndex)]
            }
        }
        
        subscript (start:Int, length:Int) -> String {
            get {
                let startIndex = advance(self.startIndex, start)
                let endIndex = advance(startIndex, length)
                
                return self[Range(start: startIndex, end: endIndex)]
            }
        }
        
        var Length : Int{
            get{
                return count(self)
            }
        }
    }
    
    println("ABCDEFGHI"[0...4])            //ABCDE
    println("ABCDEFGHI"[0..<4])           //ABCD 
    println("ABCDEFGHI"[1,4])              //BCDE
    println("ABCDEFGHI".Length)          //9
  • 相关阅读:
    8-16 不无聊序列 non-boring sequences uva1608
    8-8 Ddfense Line uva1471 优先级队列
    8-12 Erratic Expansion uva12627
    8-4 Fabled Rooks uva11134
    8-10 Coping Books uva714
    8-13 Just Finish it up uva11093
    8-11 Add All uva 10954
    8-2 Building for UN Uva1605
    css定位.py
    处理HTML5视频播放.py
  • 原文地址:https://www.cnblogs.com/comsokey/p/Swift2.html
Copyright © 2011-2022 走看看