https://medium.com/hash-coding/swift-access-control-ios-dab45a0b79ab
а то есть public функцию оверрайдить можно только в модуле, ок ок
В иос же нет protected
А альтернатива, замена или нет необходимости реализации в swift?
Та вроде нет прям такой альтернативы
Не реализовано в виду отсутствия как таковой необходимости. Необходимость отпадает в виду модульной направленности языка и возможности указывать уровень доступа раздельно для геттера и сеттера. Подробнее
Спасибо, Руслан! Как всегда выручаешь с каверзными вопросами!😁👍💪
Добавлю: Тут нужно понимать, что уровни доступа private/fileprivate/interal и public/open имеют под собой фундаментальное влияние на их семантику. private/fileprivate/interal код доступен только внутри модуля, поэтому язык имеет полное представление о них во время компиляции, что в свою очередь позволяет упростить накладываемые ограничения на расширения, инциализаторы и тд. public/open код может быть использован произвольным и неизвестным внешним кодом, поэтому требует дополнительных ограничений для обеспечения стабильности интерфейса. А вот protected в свою очередь требует лишь видимости в сабклассах, НО сам сабкласс может являться как публичным, что накладывает ограничения описанные выше, так может являться и не публичным, доступным только внутри модуля, в таком случае ограничения нужно снять. То есть казалось бы небольшое дополнение(которое на самом деле и не нужно) несёт в себе две диаметрально противоположных реализаций.
Обсуждают сегодня