博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swift4.0复习扩展
阅读量:5311 次
发布时间:2019-06-14

本文共 1033 字,大约阅读时间需要 3 分钟。

1.扩展计算式属性:

2.对方法进行扩展:

/// 定义枚举类型Light,/// 它指定了基本类型Stringenum Light: String {    case red = "red"    case green = "green"    case blue = "blue"} /// 对Light枚举类型进行扩展extension Light {         /// 扩展出不带参数的初始化器方法    init() {        // 这里默认值设定为red        self = .red    }         /// 扩展出描述方法    func discribe() -> String {        return self.rawValue    }         /// 扩展出下标    subscript(index: Int) -> Light {        let matchStrings = ["red", "green", "blue"]        // 找到当前枚举值所处的索引位置        let currIndex = matchStrings.index {            return $0 == self.rawValue        }!        // 将当前索引位置与指定的索引相加,        // 然后模2,        // 得到最终的枚举值        return Light(rawValue: matchStrings[(currIndex + index) % 3])!    }} // 使用扩展出的初始化器方法创建Light枚举实例let light = Light() // 调用扩展出的discribe方法print("current light: \(light.discribe())") // 使用扩展出的下标print("light[0] = \(light[0])")print("light[1] = \(light[1])")print("light[2] = \(light[2])") 

3.对协议的扩展:

4.对已有类型做协议遵循的扩展:

5.对泛型类型进行扩展:

6.用一条泛型where从句进行扩展:

 

转载于:https://www.cnblogs.com/pengsi/p/8514402.html

你可能感兴趣的文章
go:windows下用sublime Text搭建go语言开发环境
查看>>
WPF-项目调试不常见错误解决
查看>>
ZK dropEvent简单使用
查看>>
openssh,dropbear,pssh,rsync等安全传输工具详解
查看>>
事务隔离实现并发控制:MySQL系列之十
查看>>
monkeyrunner 自动化 解释
查看>>
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
查看>>
zTree第四章,异步加载,后端
查看>>
DLL的概念、dll导出类
查看>>
团队作业7
查看>>
linux主机状态检测方式
查看>>
Linux进程或线程绑定到CPU
查看>>
你真的理解了for循环吗?反正我是没有
查看>>
nginx下配置多个web服务
查看>>
VMware Centos7 桥接 DHCP无法获得IP
查看>>
.NET高级:对委托与事件的深入理解
查看>>
也谈 GET 和 POST 的区别
查看>>
.net dll热插拔
查看>>
dows 性能监控软件 Spotlight On Windows
查看>>
Java多线程——sychronized
查看>>