Swift简明教程(七)泛型
来源:互联网 发布:4399游戏盒刷盒币软件 编辑:程序博客网 时间:2024/04/30 06:17
Swift简明教程(七)泛型
使用尖括号可以定义泛型函数或类型。
func repeat<ItemType>(item: ItemType, times: Int) -> ItemType[] { var result = ItemType[]() for i in 0..times { result += item } return result}repeat("knock", 4)
同样可以创建泛型类、枚举类型和结构体类型。
//重新实现Swift标准库中的optional类型enum OptionalValue<T> { case None case Some(T)}var possibleInteger: OptionalValue<Int> = .NonepossibleInteger = .Some(100)
使用where
关键字可以给泛型添加一个限制列表,例如:两个类型必须相同、必须实现某个协议、必须是某个类的子类等。
func anyCommonElements <T, U where T: Sequence, U: Sequence, T.GeneratorType.Element: Equatable, T.GeneratorType.Element == U.GeneratorType.Element> (lhs: T, rhs: U) -> Bool { for lhsItem in lhs { for rhsItem in rhs { if lhsItem == rhsItem { return true } } } return false}anyCommonElements([1, 2, 3], [3])
试验修改anyCommonElements
函数,使得它能够返回两个序列的交集。
在简单的情况下,可以省略where
,直接写后面的部分就可以了,如<T: Equatable>
与<T where T: Equatable>
的作用一样的。
0 0
- Swift简明教程(七)泛型
- Swift简明教程一(数据类型)
- Swift简明教程(二)流程控制
- EXT2.0 简明教程(七)
- Swift中文教程(七) 闭包
- Swift中文教程(七) 闭包
- Swift中文教程(七) 闭包
- Swift中文教程(七) 闭包
- Swift简明教程(一)变量与常量
- Swift简明教程(三)-函数与闭包
- Swift简明教程(四)类与对象
- Swift简明教程(五)枚举与结构体
- Swift简明教程(六)协议与扩展
- 简明python教程学习笔记(七)-模块
- 简明python教程 --C++程序员的视角(七):异常
- 简明C语言教程(七)scanf 用法
- 苹果Swift语言中文简明教程
- Vbs脚本编程简明教程之七
- Column Family
- centos安装setup小工具
- MySQL性能测试分析
- xcode6-beta下载
- Android屏幕适配解析
- Swift简明教程(七)泛型
- CPP(二)再接再厉:STL容器类的使用
- nginx负载均衡配置说明
- 关于strlen
- 来自苹果的编程语言——Swift简介
- Monkey工具
- 单独配置secondarynamenode
- 史上最短小精悍的javascript编写的俄罗斯方块游戏,仅仅60行代码
- SharePoint2013数据导入、读取