В Swift typealias — это псевдоним существующего типа. Это позволяет вам называть один тип данных другим именем.
Стратегическое использование псевдонимов типов может сделать ваш код более читабельным и понятным.
Чтобы объявить новый псевдоним типа в вашем проекте, просто используйте следующий синтаксис:
typealias NewType = ExistingType
Далее я покажу вам несколько реальных случаев использования псевдонимов типов в вашей программе на Swift.
Кстати, если вы хотите посмотреть короткое видео на эту тему, не смотрите дальше:
Примеры псевдонимов
Допустим, вы имеете дело с весами в своем коде. Эти веса удваиваются по типу данных.
Но с помощью typealias вы можете создать псевдоним Weight
это на самом деле Double
под капотом:
typealias Weight = Double
Теперь вы можете использовать Weight
вместо Double
:
let mass1: Weight = 152.3 let mass2: Weight = 43.2 print(mass1 + mass2)
Напишите расширение для Typealias
Написание расширение поскольку typealias также расширяет базовый тип. Например, если предположить, что Weight
в килограммах, давайте создадим расширение toPounds()
для Weight
псевдоним:
typealias Weight = Double extension Weight { func toPounds() -> Weight { return self * 2.205 } } let mass: Weight = 100 print(mass.toPounds()) // The extension affects Doubles too: let massDoubles: Double = 120 print(massDoubles.toPounds())
Выход:
220.5 264.6
Как видите, оба Double
и Weight
экземпляры теперь имеют toPouds()
конверсия.
Объединение протоколов с использованием Typealias
Предположим, у вас есть два доступа протоколы для чтения и написания оценок учащихся:
protocol ReadAccess {} protocol WriteAccess {}
Ваш учитель должен уметь читать и писать оценки. Используя typealias, вы можете аккуратно объединить эти два протокола, чтобы создать новый протокол, предназначенный только для администраторов учителей:
typealias AdminAccess = ReadAccess & WriteAccess struct Teacher: AdminAccess {}
Замыкания и типалиасы
Допустим, у нас есть простой метод, который принимает закрытие в качестве входных данных:
func method(operation: (Double) -> (Double)) {}
Теперь вы можете создать псевдоним для (Double) -> (Double)
тип функции чтобы подчеркнуть, что это математическая операция:
typealias MathOperation = (Double) -> (Double)
Сейчас method
можно обновить, чтобы использовать этот псевдоним типа в типе аргумента:
func method(operation: MathOperation) {}
Заключение
Typealias — это просто псевдоним существующего типа. Основная цель псевдонимов — сделать код более читабельным и понятным. В качестве примера, вот псевдоним типа Weight, который по сути является просто Double:
typealias Weight = Double
Спасибо за прочтение. Надеюсь, вы найдете это полезным.