zoukankan      html  css  js  c++  java
  • Swift 协议(protocol)和扩展(extension)

    协议

      Swift 使用protocol定义协议:

    1 protocol ExampleProtocol {
    2     var simpleDescription: String { get }
    3     mutating func adjust ()
    4 }

    类型、枚举和结构都可以实现(adopt)协议:

     1 class SimpleClass: ExampleProtocol {
     2     var simpleDescription: String = "A very simple class." var anotherProperty: Int = 69105
     3     func adjust () {
     4         simpleDescription += " Now 100% adjusted."
     5     }
     6 }
     7 var a = SimpleClass ()
     8 a.adjust ()
     9 let aDescription = a.simpleDescription
    10 
    11 struct SimpleStructure: ExampleProtocol {
    12     var simpleDescription: String = "A simple structure"
    13     mutating func adjust () {
    14         simpleDescription += " (adjusted)"
    15     }
    16 }
    17 var b = SimpleStructure ()
    18 b.adjust ()
    19 let bDescription = b.simpleDescription

    扩展

      扩展用于在已有的类型上增加新的功能(比如新的方法或属性),Swift 使用extension声明扩展:

    1 extension Int: ExampleProtocol {
    2     var simpleDescription: String {
    3         return "The number (self)"
    4     }
    5     mutating func adjust () {
    6         self += 42
    7     }
    8 }
    9 7.simpleDescription
  • 相关阅读:
    iOS_SN_地图的使用(3)
    iOS_SN_地图的使用(2)
    iOS_SN_百度地图基本使用(1)
    iOS_SN_CoreData(二)
    iOS_SN_CoreDate(一)封装使用
    iOS_SN_UITableView的优化
    阿里云 单表备份 恢复
    svn 彻底删除文件、文件夹
    @去除
    服务器安全保护
  • 原文地址:https://www.cnblogs.com/atong/p/3767511.html
Copyright © 2011-2022 走看看