Swift中的typealias
来源:互联网 发布:剑三喵太捏脸数据 编辑:程序博客网 时间:2024/04/30 18:07
typealias
typealias 是用来为已经存在的类型重新定义名字的,通过重新命名,可以使代码变得更加清晰。使用 typealias 关键字像使用普通的赋值语句一样,可以将某个已经存在的类型赋值为新的名字。
比如在计算一个平面上的距离和位置的时候,我们一般用 Double 类型来表示距离,用 CGPoint 类型来表示位置,下面是一个计算两点之间的距离的方法:
func distanceBetweenPoint(fromPoint: CGPoint, toPoint: CGPoint) -> Double { let dx = Double(toPoint.x - fromPoint.x) let dy = Double(toPoint.y - fromPoint.y) return sqrt(dx * dx + dy * dy)}let fromP: CGPoint = CGPoint(x: 0, y: 0)let toP: CGPoint = CGPoint(x: 1, y: 1)let distance: Double = distanceBetweenPoint(fromP, toPoint: toP)
在这个例子中,虽然在数学上和最后的程序运行上都没什么问题,但是因为我们没有将数学抽象和实际问题结合起来,使得在阅读代码时我们还需要在大脑中进行一次额外的转换:CGPoint 代表一个点,就是在坐标系里的位置,Double 是一个数字,是代表两点之间的距离。
这时候如果我们使用 typealias,就可以将这种转换直接写在代码里,从而减轻阅读和维护的负担:
typealias Point = CGPointtypealias Distance = Doublefunc distanceBetweenPoint(fromPoint: Point, toPoint: Point) -> Distance { let dx = Distance(toPoint.x - fromPoint.x) let dy = Distance(toPoint.y - fromPoint.y) return sqrt(dx * dx + dy * dy)}let fromP: Point = Point(x: 0, y: 0)let toP: Point = Point(x: 1, y: 1)let distance: Distance = distanceBetweenPoint(fromP, toPoint: toP)
同样的代码,在 typealias 的帮助下,读起来就轻松多了。在更复杂的实际问题中时,就可以不再思考代码里那些成堆的 Int 或者 String 等基本类型到底代表的是什么了,这样你应该能省下不少脑细胞。
0 0
- Swift中的typealias
- Swift中的typealias(别名)的用法
- swift 关于 typealias
- [Swift 开发] 使用闭包传值(typealias)
- swift 学习笔记(6)-typealias
- mybatis中的typeAlias
- mybatis中的typeAlias
- Swift:元组、typealias和泛型
- swift_042(Swift的typealias(别名)的用法)
- Swift中使用typealias定义一个闭包closure
- Swift教程之typealias取代OC的typedef
- typeAlias元素
- MyBatis typeAlias
- [Swift]Swift中的!和?
- <typeAlias> <reslutmap> <parameterMap>
- <typeAlias> <resultmap><parametermap>
- typealias的用法
- Insight mybatis typeAlias
- XML 特殊字符 编码 c++
- 浏览器插件之ActiveX开发(二)
- JedisPool介绍
- DB Oracle rownum
- 简易售票系统
- Swift中的typealias
- C++ 文件查找 _findfirst、_findnext和_fineclose的使用
- Locating Elements
- 只刷新某一行的数据
- httpclient调用cxf开发webservice接口以及jboss开发的webservice接口
- byte 常用转换
- Ubunt15.04 安装JDK 8
- 生产环境下JAVA进程高CPU占用故障排查
- 69 - Sqrt(x)