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
  • 相关阅读:
    javascript权威指南(2)
    javascript权威指南(1)
    java之jvm学习笔记四(安全管理器)
    JavaEE Tutorials (2)
    Java高效编程(2) -- Creating and Destroying Objects
    JavaEE Tutorials (1)
    Java Web整合开发(12) -- JDBC
    memcached安装和验证
    [leetcode]Two Sum
    Java Web整合开发(11)
  • 原文地址:https://www.cnblogs.com/atong/p/3767511.html
Copyright © 2011-2022 走看看