swift类型别名typealias – Swift最新教程

上一章Swift教程请查看:swift闭包函数高级编程

在本文中,你将了解类型别名typealias及其在Swift中的用例。

类型别名允许在程序中为现有数据类型提供新名称,在声明类型别名之后,可以在整个程序中使用别名名称代替现有类型。

类型别名不创建新类型,它们只是为现有类型提供一个新名称。

typealias的主要目的是使我们的代码更具可读性,并且在上下文中更清晰,便于人们理解。

如何创建类型别名?

它使用关键字typealias声明为:

typealias name = existing type

在Swift中,大多数类型都可以使用typealias,它们可以是:

  • 用于内置类型。(例如:String、Int)
  • 用户定义的类型(如类,结构,枚举)
  • 复杂类型(如闭包)

用于内置类型的Typealias

你可以为所有内建的数据类型使用typealias,如String、Int、Float等。

例如:

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值并返回字符串。

你可以看到使用(Int)->(String)对读者来说意义不大,你可以使用typealias为它提供一个新名称:

typealias CompletionHandler = (Int)->(String)

现在你可以重写的方法如下:

func someMethod(oncomp:CompletionHandler){
}

通过使用typealias,我们可以看到同样的代码看起来更清晰,而且对程序员更友好。

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?