iOS-swift-協議和拓展

來源:互聯網
上載者:User

標籤:turn   esc   self   int   存在   類型   結構   imp   ext   

1 協議( protocol

    使用關鍵字 protocol 建立協議。

    protocol ExampleProtocol {        var simpleDescription: String { get }        mutating func adjust()    }

    類、枚舉和結構體都支援協議。

lass SimpleClass: ExampleProtocol {    var simpleDescription: String = "A very simple class."    var anotherProperty: Int = 69105    func adjust() {        simpleDescription += "  Now 100% adjusted."    }}var a = SimpleClass()a.adjust()let aDescription = a.simpleDescription struct SimpleStructure: ExampleProtocol {    var simpleDescription: String = "A simple structure"    mutating func adjust() {        simpleDescription += " (adjusted)"    }}var b = SimpleStructure()b.adjust()let bDescription = b.simpleDescription

      注意關鍵字 mutating,在結構體 SimpleStructure 中使用 mutating 實現協議中的方法。而在類中 SimpleClass,卻不需要關鍵字 mutating 實現協議方法,因為類中方法本身就不需要關鍵字mutating 聲明。

2 拓展( extension

    使用關鍵字 extension 建立一個已存在類型的拓展。

    extension Int: ExampleProtocol {        var simpleDescription: String {            return "The number \(self)"        }        mutating func adjust() {            self += 42        }    }    print(7.simpleDescription)

 

恩,努力。

iOS-swift-協議和拓展

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.