协议和扩展:

//
// ViewController4.swift
// SwiftBasicDemo
//
// Created by 思 彭 on 16/11/16.
// Copyright © 2016年 思 彭. All rights reserved. // 协议和扩展 import UIKit // 定义协议
protocol ExampleProtocol { var simpleDescription: String {
get
}
// 使用 mutating 关键字修饰方法是为了能在该方法中修改 struct 或是 enum 的变量,在设计接口的时候,也要考虑到使用者程序的扩展性。所以要多考虑使用mutating来修饰方法。
mutating func adjust()
} class ViewController4: UIViewController { override func viewDidLoad() {
super.viewDidLoad()
self.title = "协议和扩展" // 1.Classes, enumerations, and structs都能接受协议
var a = SimpleClass()
a.adjust()
let aDescription = a.simpleDescription
print("aDescription = \(aDescription)")
var b = SimpleStructure()
b.adjust()
let bDescription = b.simpleDescription
print("bDescription = \(bDescription)") // 输出结果:
/* aDescription = A very simple class. Now 100% adjusted.
bDescriptionA = simple structure (adjusted)
*/ // 2. extension扩展的使用
print(.simpleDescription)} // The number 7 } // 创建类,遵守协议
class SimpleClass: ExampleProtocol {
var simpleDescription: String = "A very simple class."
var anotherProperty: Int =
func adjust() {
simpleDescription += " Now 100% adjusted."
}
} struct SimpleStructure: ExampleProtocol {
var simpleDescription: String = "A simple structure"
mutating func adjust() {
simpleDescription += " (adjusted)"
}
} // Int的扩展
extension Int: ExampleProtocol {
var simpleDescription: String {
return "The number \(self)"
}
mutating func adjust() {
self +=
}
}

Swift3.0基础语法学习<四>的更多相关文章

  1. Swift3.0基础语法学习<三>

    枚举和结构体: // // ViewController3.swift // SwiftBasicDemo // // Created by 思 彭 on 16/11/16. // Copyright ...

  2. Swift3.0基础语法学习<一>

    // // ViewController.swift // SwiftBasicDemo // // Created by 思 彭 on 16/11/15. // Copyright © 2016年 ...

  3. Swift3.0基础语法学习<二>

    对象和类: // // ViewController2.swift // SwiftBasicDemo // // Created by 思 彭 on 16/11/15. // Copyright © ...

  4. Swift3.0基础语法学习<五>

    异常处理: // // ViewController5.swift // SwiftBasicDemo // // Created by 思 彭 on 16/11/16. // Copyright © ...

  5. swift3.0基础语法

    swift 3.0 基础语法 目录 01-变量和常量 02-运算符 03-可选项 04-条件语句 05-循环 06-字符串 07-元组 08-数组 09-字典 10-对象和类 11-枚举 12-属性 ...

  6. swift3.0基础语法(2)

    变量/常量,元组声明 var aaa = 0;//声明变量aaa 首次赋值时自动解析为Int类型 var aaa:Int = 0;//声明Int类型变量aaa let aaa = 0;//声明常量aa ...

  7. 学习java之基础语法(三)

    学习java之基础语法(三) java运算符 计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量.我们可以把运算符分成以下几组: 算术运算符 关系运 ...

  8. Swift基础语法学习总结(转)

    Swift基础语法学习总结 1.基础  1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型 ...

  9. Swift基础语法学习总结

    Swift基础语法学习总结Swift高级语法学习总结Swift语法总结补充(一) 1.基础  1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift ...

随机推荐

  1. SpringMVC案例1——对User表进行CRUD操作

    ------------------------------------------------------------------web.xml--------------------------- ...

  2. django1.9.6 使用 DjangoUeditor (python3.5)

    DjangoUeditor https://github.com/zhangfisher/DjangoUeditor 1 DjangoUeditor 安装 pip install DjangoUedi ...

  3. (转)分布式深度学习系统构建 简介 Distributed Deep Learning

    HOME ABOUT CONTACT SUBSCRIBE VIA RSS   DEEP LEARNING FOR ENTERPRISE Distributed Deep Learning, Part ...

  4. python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix

    先手工生出一个数据框吧 import numpy as np import pandas as pd df = pd.DataFrame(np.arange(0,60,2).reshape(10,3) ...

  5. 9、java中的final关键字

    /* final : 最终.作为一个修饰符, 1,可以修饰类,函数,变量. 2,被final修饰的类不可以被继承.为了避免被继承,被子类复写功能. 3,被final修饰的方法不可以被复写. 4,被fi ...

  6. Token验证失败

    Token验证失败 微信 微信公众平台开发 Token校验失败 URL Token原文 http://www.cnblogs.com/txw1958/p/token-verify.html Token ...

  7. 虚拟机Ubuntu16,caffe环境搭建

    虚拟机下的Ubuntu16.04+caffe+onlycup 官网的step很重要,要跟着官网,的步骤来:http://caffe.berkeleyvision.org/installation.ht ...

  8. c# webform网站图片另存代码

    好辛苦生成了二维码,然后要实现点击“保存图片”,弹出选择路径进行保存的效果. look: string qrcodeurl = ""; string username = &quo ...

  9. IEEE浮点数表示法之出小数

    纯小数的表示方法-------------------------------------------------    下面再来讲如何将纯小数转化为十六进制.对于纯小数,比如0.0456,我们需要把 ...

  10. CSS基础篇

    写的不错,收藏 http://www.cnblogs.com/suoning/p/5625582.html