iOS开发部分-5

斯威夫特Typealias

目录

  • 什么是打字别名?
  • 如何创建打字别名?
  • 内置类型的Typealias
  • 用户定义类型的类型别名
  • 复杂类型的Typealias

Typealias

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

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

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

如何创建打字别名?

使用关键字typealias声明为:

 类型别名=现有类型 

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

  • 内置类型 (例如:字符串,整数)
  • 用户定义的类型 (例如:类,结构,枚举)
  • 复杂类型 (例如:闭包)

内置类型的Typealias

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

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

例如:

  typealias StudentName =字符串 

上面的声明允许在所有地方使用StudentName而不是String 。 因此,如果您想创建一个字符串类型的常量,但是却更像是学生姓名。 您可以这样做:

  let name:StudentName =“ Pratik” 

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

  let name:String =“ Pratik” 

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

用户定义类型的类型别名

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

 class Student { 

}

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

  var students:Array  = [] 

通过使用typealiasArray创建您自己的类型,可以使上述声明更具可读性:

  typealias学生= Array  

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

  var students:Students = [] 

复杂类型的Typealias

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

如果您不了解闭包,请不要担心。 只需将其视为一种特殊的功能即可。 我们已经在文章Swift闭包中对其进行了详细解释。

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

}

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

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

  typealias CompletionHandler =(整数)->(字符串) 

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

 func someMethod(oncomp:CompletionHandler){ 

}

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