阅读 189

Swift 类型别名(Typealias)

在本文中,您将学习Swift中的类型别名及其用例。

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

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

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

如何创建类型别名?

使用 typealias 关键字声明为:

typealias name = existing type

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

  • 内置类型(例如:String, Int)

  • 用户定义的类型(例如:类,结构,枚举)

  • 复杂类型(例如:闭包)

内置类型的Typealias

您可以将typealias用于所有内置数据类型,如String,Int,Float等。

例如:

typealias StudentName = String

以上声明允许学生姓名在各处代替String。因此,如果您想创建一个字符串类型的常量,但是却更像是学生姓名。您可以这样做:

let name:StudentName = "Jack"

在不使用 typealias 的情况下,应将string类型的常量声明为:

let name:String = "Jack"

在以上两个示例中,创建一个String类型常量。但是,使用 typealias 进行声明,我们的代码将更具可读性。

用户定义类型的类型别名

在许多情况下,您需要创建自己的数据类型。假设您要创建一个表示Student的类型,则可以使用以下类来创建它:

示例

class Student {

}

现在,一组学生可以表示为数组:

var students:Array<Student> = []

通过使用 typealias 为Array <Student>创建您自己的类型,可以使上述声明更具可读性:

typealias Students = Array<Student>

现在,我们可以使代码更具可读性:

var students:Students = []

复杂类型的Typealias

让我们再分析一个实例。假设我们有一个将闭包作为输入参数的方法。

如果您不了解闭包,请不要担心。只需将其视为一种特殊的函数即可。

示例

func someMethod(oncomp:(Int)->(String)){

}

上面的示例将闭包作为someMethod的输入。 该闭包采用Int值并返回String。

您可以看到 (Int)-> (String) 的使用对于开发人员来说没有什么意义。你可以使用 typealias 为它提供一个新名称:

typealias CompletionHandler = (Int)->(String)

现在,您可以将方法重写为:

示例

func someMethod(oncomp:CompletionHandler){

}

我们可以看到,使用typealias,相同的代码看起来更加清晰并且对程序员友好。


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐