Swift4.0复习扩展
2024-08-26 16:52:29
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从句进行扩展:
最新文章
- 使用google 语言 api 来实现整个网站的翻译
- java26
- IO流-文件管理
- Java 流笔记
- poj 1251 统计难题(字典树)
- 使用truss、strace或ltrace诊断软件的“疑难杂症”
- Educational Codeforces Round 1(C. Nearest vectors)
- 关于js当中一些糟糕的特性
- 初试ubuntu14.4问题集锦
- 如何在eclipse中修改jsp默认编码
- 从零开始做UI-静电的sketch设计教室 视频教程
- 看德日进,凯文·凯利与Kurzweil老师?
- 在VM中给Linux安装Tool
- python中的类机制
- Pyspark-SQL 官方 API 的一些梳理(上)
- iOS----------被拒原因
- P3368 【模板】树状数组 2--洛谷luogu
- SpringMvc常见问题汇总
- 使用 HTTP/2 提升性能的几个建议
- jdbc连接池&;改进dbUtil成C3P0Util
热门文章
- yii2原生sql
- HttpMessageConverter(消息转换器 )和@responsebody使用(转)
- [React] Write a Custom React Effect Hook
- 【MongoDB】在C#中使用
- 【FTP】Wireshark学习FTP流程
- 如何在Processing中用鼠标获取RGB颜色数值
- javascript生成表格增删改查 JavaScript动态改变表格单元格内容 动态生成表格 JS获取表格任意单元格 javascript如何动态删除表格某一行
- 【模板】最小割树(Gomory-Hu Tree)
- Fluent当中的通配符【翻译】
- CSS(1)