English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Nome de Tipo (Typealias) Swift

Neste artigo, você aprenderá sobre os aliases de tipo no Swift e seus casos de uso.

O typealias permite que você defina um nome existenteTipo de dadosFornecer um novo nome. Após a declaração do typealias, você pode usar o alias em todo o programa em vez do tipo existente.

O typealias não cria um novo tipo. Eles apenas fornecem um novo nome para o tipo existente.

O principal objetivo do typealias é tornar nosso código mais legível e mais claro no contexto, para que seja mais fácil de entender para humanos.

Como criar um alias de tipo?

Declarado usando a palavra-chave typealias:

typealias name = existing type

No Swift, a maioria dos tipos pode usar o typealias. Eles podem ser:

  • Tipos embutidos(por exemplo: String, Int)

  • Tipos definidos pelo usuário(por exemplo: classes, estruturas, enums)

  • Tipos complexos(por exemplo: closures)

Typealias de tipo embutido

Você pode usar o typealias para todos os tipos embutidos, como String, Int, Float, etc.

Por exemplo:

typealias StudentName = String

A declaração acima permiteNome do alunoEm todos os lugares em vez de String. Portanto, se você quiser criar uma constante de tipo String, mas que mais parece o nome do aluno, você pode fazer assim:

let name:StudentName = "Jack"

Sem usar o typealias, a constante de tipo String deve ser declarada como:

let name:String = "Jack"

Nos dois exemplos acima, foi criado um constante de tipo String. No entanto, usando o typealias para declaração, nosso código ficará mais legível.

Tipo de alias definido pelo usuário

Em muitos casos, você precisa criar seu próprio tipo de dados. Suponha que você precise criar um tipo para representar Student, você pode usar a seguinte classe para criar:

class Student {
}

Agora, um grupo de alunos pode ser representado por um array:

var students:Array<Student> = []

Ao usar o typealias para criar seu próprio tipo Array<Student>, podemos tornar a declaração acima mais legível:

typealias Students = Array<Student>

Agora, podemos tornar o código mais legível:

var students:Students = []

Tipos complexos de Typealias

Vamos analisar outro exemplo. Suponha que tenhamos um método que recebe um closure como parâmetro.

Se você não entender closures, não se preocupe. Basta vê-los como uma função especial.

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

O exemplo acima coloca um closure como entrada da função someMethod. A closure aceita um valor Int e retorna um String.

Você pode ver (Int)-> O uso de (String) não tem significado para os desenvolvedores. Você pode usar typealias para fornecer um novo nome:

typealias CompletionHandler = (Int)-> (String)

Agora, você pode reescrever o método da seguinte forma:

func someMethod(oncomp: CompletionHandler){
}

Podemos ver que, usando typealias, o código fica mais claro e amigável para os programadores.