上一章Swift教程请查看:swift闭包函数高级编程
在本文中,你将了解类型别名typealias及其在Swift中的用例。
类型别名允许在程序中为现有数据类型提供新名称,在声明类型别名之后,可以在整个程序中使用别名名称代替现有类型。
类型别名不创建新类型,它们只是为现有类型提供一个新名称。
typealias的主要目的是使我们的代码更具可读性,并且在上下文中更清晰,便于人们理解。
如何创建类型别名?它使用关键字typealias声明为:
typealias name = existing type
在Swift中,大多数类型都可以使用typealias,它们可以是:
- 用于内置类型。(例如:String、Int)
- 用户定义的类型(如类,结构,枚举)
- 复杂类型(如闭包)
例如:
typealias StudentName = String
上面的声明允许在任何地方使用StudentName而不是String。如果你想创建一个字符串类型的常量但它更像是学生名。你可以这样做:
let name:StudentName = "Jack"
在不使用typealias的情况下,应该将类型为string的常量声明为:
let name:String = "Jack"
以上两个例子都创建了一个String类型的常量。但是使用typealias声明,我们的代码将变得更具可读性。
用户定义类型的Typealias在许多情况下,你需要创建自己的数据类型,假设你想创建一个代表Student的类型,你可以使用一个类来创建它:
class Student {
}
现在一组学生可以表示为一个数组:
var students:Array<
Student> = []
通过使用typealias 为数组< Student> 创建自己的类型,可以使上述声明更具可读性:
typealias Students = Array<
Student>
现在我们可以使我们的代码更具可读性:
var students:Students = []
复杂类型的Typealias让我们再分析一个例子,假设我们有一个以闭包作为输入参数的方法。
如果你不了解闭包,也不要担心,把它想成一个特殊类型的函数。我们已经在文章中详细解释过:Swift闭包。
func someMethod(oncomp:(Int)->(String)){
}
上面的示例将闭包作为someMethod的输入,闭包接受一个Int值并返回字符串。
【swift类型别名typealias – Swift最新教程】你可以看到使用(Int)-> (String)对读者来说意义不大,你可以使用typealias为它提供一个新名称:
typealias CompletionHandler = (Int)->(String)
现在你可以重写的方法如下:
func someMethod(oncomp:CompletionHandler){
}
通过使用typealias,我们可以看到同样的代码看起来更清晰,而且对程序员更友好。
推荐阅读
- swift闭包函数高级编程 – Swift最新教程
- swift函数重载 – Swift最新教程
- swift range范围 – Swift最新教程
- swift递归函数 – Swift最新教程
- swift嵌套函数 – Swift最新教程
- swift函数参数和返回值 – Swift最新教程
- swift定义和调用函数解析 – Swift最新教程
- swift字典用法和操作全解 – Swift最新教程
- swift集合的使用和操作全解 – Swift最新教程