1.扩展计算式属性:

2.对方法进行扩展:

/// 定义枚举类型Light,
/// 它指定了基本类型String
enum 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 $ == self.rawValue
}!
// 将当前索引位置与指定的索引相加,
// 然后模2,
// 得到最终的枚举值
return Light(rawValue: matchStrings[(currIndex + index) % ])!
}
}
 
// 使用扩展出的初始化器方法创建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从句进行扩展:

最新文章

  1. 使用google 语言 api 来实现整个网站的翻译
  2. java26
  3. IO流-文件管理
  4. Java 流笔记
  5. poj 1251 统计难题(字典树)
  6. 使用truss、strace或ltrace诊断软件的“疑难杂症”
  7. Educational Codeforces Round 1(C. Nearest vectors)
  8. 关于js当中一些糟糕的特性
  9. 初试ubuntu14.4问题集锦
  10. 如何在eclipse中修改jsp默认编码
  11. 从零开始做UI-静电的sketch设计教室 视频教程
  12. 看德日进,凯文·凯利与Kurzweil老师?
  13. 在VM中给Linux安装Tool
  14. python中的类机制
  15. Pyspark-SQL 官方 API 的一些梳理(上)
  16. iOS----------被拒原因
  17. P3368 【模板】树状数组 2--洛谷luogu
  18. SpringMvc常见问题汇总
  19. 使用 HTTP/2 提升性能的几个建议
  20. jdbc连接池&改进dbUtil成C3P0Util

热门文章

  1. yii2原生sql
  2. HttpMessageConverter(消息转换器 )和@responsebody使用(转)
  3. [React] Write a Custom React Effect Hook
  4. 【MongoDB】在C#中使用
  5. 【FTP】Wireshark学习FTP流程
  6. 如何在Processing中用鼠标获取RGB颜色数值
  7. javascript生成表格增删改查 JavaScript动态改变表格单元格内容 动态生成表格 JS获取表格任意单元格 javascript如何动态删除表格某一行
  8. 【模板】最小割树(Gomory-Hu Tree)
  9. Fluent当中的通配符【翻译】
  10. CSS(1)