Swift入門教程教程15-擴充(extension)

來源:互聯網
上載者:User

標籤:swift   入門教程   擴充   extension   

原創Blog,轉載請註明出處
http://blog.csdn.net/column/details/swift-hwc.html

一、擴充(extensions)的定義
  擴充是向一個已有的類、結構體或者枚舉添加新的功能。擴充不需要獲得原始類的源碼。
  擴充與objective C中的categories類似
擴充可以增加的功能包括

1、計算屬性和計算靜態屬性(不可以添加儲存屬性和屬性觀察期)
2、新的執行個體方法和類型方法
3、提供新的構造器
4、定義下表標本
5、定義和使用新的巢狀型別
6、使已有類型符合某個協議

文法
由關鍵字extension聲明
extension SomeType {// }
擴充使其符合某個協議
extension SomeType: SomeProtocol, AnotherProctocol {// 協議實現寫到這裡}
協議這部分後會後續講解


二、擴充String的執行個體
不瞭解String的同學參考我之前寫的這篇文章
http://blog.csdn.net/hello_hwc/article/details/39853023
一個例子涵蓋了除了協議外的常用擴充
extension String {      //擴充下標指令碼    subscript (r: Range<Int>) -> String {          get {              let subStart = advance(self.startIndex, r.startIndex, self.endIndex)             let subEnd = advance(subStart, r.endIndex - r.startIndex, self.endIndex)              return self.substringWithRange(Range(start: subStart, end: subEnd))          }      }    //擴充執行個體方法      func substring(#from: Int) -> String {          let end = countElements(self)          return self[from..<end]      }      func substring(#from: Int, length: Int) -> String {          let end = from + length          return self[from..<end]      }      func substring(#from:Int, to:Int) ->String      {          return self[from..<to]      }    //定義新的構造器    init(first:String,second:String)    {        self.init(first+second)    }    //定義新的巢狀型別,這裡的巢狀型別是一個枚舉    //所謂巢狀型別,簡單理解就是在一個類型裡定義另一個類型    enum Kind{        case IsIntStr,NotIntStr    }    //定義一個新的執行個體變數,返回這個字串是否是可以轉換為Int    var kind:Kind{        var result:Kind = Kind.IsIntStr        if self.toInt()? == nil{            result = .NotIntStr      }        return result    }}  var str = String(first:"hello ",second:"hwc") var str1 = str.substring(from:6)  //hwcvar str2 = str.substring(from:0,to:5)  //hellovar str3 = str.substring(from:0,length:5)//hellovar str4 = str[0...5] //hellovar strKind = str.kind //NotIntStrif strKind == String.Kind.NotIntStr{        println("Not an int string")}
備忘:想看下結果的同學直接把這段代碼拷貝到palyground中就能看到結果
  

Swift入門教程教程15-擴充(extension)

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.