ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Swift 类型别名 > 原文: [https://www.programiz.com/swift-programming/typealias](https://www.programiz.com/swift-programming/typealias) #### 在本文中,您将学习 Swift 中的类型别名及其用例。 类型别名允许您为程序中的现有[数据类型](/swift-programming/data-types "Swift data types")提供新名称。 声明类型别名后,可以在整个程序中使用别名代替现有类型。 类型别名不会创建新类型。 它们只是为现有类型提供一个新名称。 `typealias`的主要目的是使我们的代码更具可读性,并且在上下文中更清晰易懂,以供人类理解。 * * * ## 如何创建类型别名? 使用关键字`typealias`声明为: ```swift typealias name = existing type ``` 在 Swift 中,大多数类型都可以使用`typealias`。 它们可以是: * **内置类型**(例如:字符串,整数) * **用户定义的类型**(例如:类,结构,枚举) * **复杂类型**(例如:闭包) * * * ## 内置类型的别名 您可以将`typealias`用于所有内置数据类型,如`String`,`Int`,`Float`等。 **例如**: ```swift typealias StudentName = String ``` 上面的声明允许 <vara>StudentName</vara> 可以在任何地方使用,而不是`String`。 因此,如果您想创建一个字符串类型的常量,但是却更像是学生姓名。 您可以这样做: ```swift let name:StudentName = "Jack" ``` 在不使用`typealias`的情况下,应将`string`类型的常量声明为: ```swift let name:String = "Jack" ``` 在这两个示例上面都创建了一个`String`类型的常量。 但是用`typealias`声明,我们的代码变得更易读。 * * * ## 用户定义类型的类型别名 在许多情况下,您需要创建自己的数据类型。 假设您要创建一个表示`Student`的`Type`,则可以使用以下类来创建它: ```swift class Student { } ``` 现在,一组学生可以表示为数组: ```swift var students:Array<Student> = [] ``` 通过使用`typealias`为`Array<Student>`创建您自己的类型,可以使上述声明更具可读性: ```swift typealias Students = Array<Student> ``` 现在,我们可以使代码更具可读性: ```swift var students:Students = [] ``` * * * ## 复杂类型的别名 让我们再分析一个例子。 假设我们有一个将闭包作为输入参数的方法。 如果您不了解闭包,请不要担心。 只需将其视为一种特殊的函数即可。 我们已经在文章中详细解释了它: *Swift 闭包*。 ```swift func someMethod(oncomp:(Int)->(String)){ } ``` 上面的示例将闭包作为`someMethod`的输入。 闭包采用`Int`值并返回`String`。 您会发现使用`(Int)->(String)`对读者来说意义不大。 您可以使用`typealias`为它提供一个新名称: ```swift typealias CompletionHandler = (Int)->(String) ``` 现在,您可以将方法重写为: ```swift func someMethod(oncomp:CompletionHandler){ } ``` 我们可以看到,使用`typealias`,相同的代码看起来更加清晰并且对程序员友好。