Переменные в протоколе должны реализовать свойства (properties). Протокол определяет требования к типу, но не их конкретную реализацию или хранение. Эти требования указывают, является ли свойство геттером (read-only) или геттером и сеттером (read-write).
В протоколе переменные объявляются с ключевыми словами var и указанием типа, а затем get и/или set в фигурных скобках.
Пример объявления свойства в протоколе:
swift
Типы, соответствующие этому протоколу, должны предоставить конкретную реализацию для этих свойств. Это может быть хранимое свойство (stored property) или вычисляемое свойство (computed property).
Пример реализации:
swift
Важные моменты:
get и set в протоколе указывают на требуемые возможности доступа, а не на механизм хранения.let или var (если оно не требует изменения после инициализации).var.