В этой статье вы узнаете о типалиях и вариантах их использования в Swift.
Псевдоним типа позволяет вам предоставить новое имя для существующего типа данных в вашей программе. После объявления псевдонима типа псевдоним можно использовать вместо существующего типа во всей программе.
Псевдоним типа не создает новых типов. Они просто дают новое имя существующему типу.
Основная цель typealias
- сделать наш код более читабельным и понятным в контексте для человеческого понимания.
Как создать типалиас?
Он объявляется с использованием ключевого слова typealias
как:
typealias name = существующий тип
В Swift вы можете использовать typealias
для большинства типов. Они могут быть:
- Встроенные типы (например, String, Int)
- Типы, определяемые пользователем (например, class, struct, enum)
- Сложные типы (например, закрытие)
Typealias для встроенных типов
Вы можете использовать псевдонимы для всех встроенных типов данных, таких как String, Int, Float и т. Д.
Например:
typealias StudentName = Строка
Приведенное выше объявление позволяет использовать StudentName везде вместо String
. Итак, если вы хотите создать константу типа string, но больше похожую на имя студента. Вы можете сделать как:
пусть имя: StudentName = "Джек"
Без использования typealias вы должны объявить константу типа string как:
пусть имя: String = "Джек"
Над обоими примерами создается константа типа String
. Но объявляя с помощью typealias
, наш код становится более читабельным.
Typealias для типов, определяемых пользователем
Есть много случаев, когда вам нужно создать свой собственный тип данных. Предположим, вы хотите создать тип, представляющий ученика, вы можете создать его, используя класс как:
class Student ( )
Теперь группу студентов можно представить в виде массива как:
var student: Array = ()
Вышеупомянутое объявление можно сделать более читаемым, создав свой собственный тип для Array
использования в typealias
качестве:
typealias Студенты = Массив
Теперь мы можем сделать наш код более читабельным:
var студенты: студенты = ()
Typealias для сложных типов
Разберем еще один пример. Предположим, у нас есть метод, который принимает замыкание в качестве входного параметра.
Не волнуйтесь, если вы не знаете о закрытии. Подумайте об этом как об особом типе функции. Мы подробно объяснили это в статье: Быстрые закрытия.
func someMethod(oncomp:(Int)->(String))( )
В приведенном выше примере в качестве входных данных для someMethod
. Замыкание принимает Int
значение и возвращается String
.
Вы можете видеть, что использование слова (Int)->(String)
имеет меньший смысл для читателя. Вы можете использовать, typealias
чтобы дать ему новое имя:
typealias CompletionHandler = (Инт) -> (Строка)
Теперь вы можете переписать метод как:
func someMethod(oncomp:CompletionHandler)( )
Мы видим, что тот же код выглядит более понятным и удобным для программистов с использованием typealias
.