首页 > 代码库 > Swift - Protocols and Extensions

Swift - Protocols and Extensions

The Swift Programming Language中的代码加上部分EXPERIMENT

import UIKitprotocol ExampleProtocol {    var simpleDescription: String { get }    mutating func adjust()}class 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.simpleDescriptionstruct SimpleStructure: ExampleProtocol {    var simpleDescription: String = "A simple structure"    mutating func adjust() {        simpleDescription += " (adjusted)"    }}var b = SimpleStructure()b.adjust()let bDescription = b.simpleDescriptionenum SimpleEnum: ExampleProtocol {    case SIMPLE(String)    var simpleDescription: String {        get {            switch self {            case let .SIMPLE(str):                return str            }        }    }    mutating func adjust() {        switch self {        case let .SIMPLE(str):            self = .SIMPLE(str + " (adjusted)")        }    }}var c = SimpleEnum.SIMPLE("A simple enum")c.simpleDescriptionc.adjust()c.simpleDescriptionextension Int: ExampleProtocol {    var simpleDescription: String {        return "The number \(self)"    }    mutating func adjust() {        self += 42    }}var d = 7d.simpleDescriptiond.adjust()let protocolValue: ExampleProtocol = aprotocolValue.simpleDescription

 

Swift - Protocols and Extensions