Вычисляемые свойства - это особый тип свойств в языке программирования Swift. Они позволяют определить геттеры и/или сеттеры для свойства, вместо того чтобы явно хранить значение.
Определение вычисляемых свойств осуществляется с помощью ключевых слов get
и set
. Геттер не имеет параметров и возвращает значение, а сеттер имеет один параметр и не возвращает значения. Вычисляемое свойство не имеет своего собственного хранилища, поэтому его значение вычисляется на основе других значений внутри структуры или класса.
Для примера рассмотрим структуру Circle
, которая имеет свойство radius
(радиус) и вычисляемое свойство area
(площадь):
struct Circle { var radius: Double var area: Double { get { return Double.pi * radius * radius } set { radius = sqrt(newValue / Double.pi) } } }
В этом примере, геттер вычисляемого свойства area
возвращает площадь круга на основе значения radius
, используя формулу π * r^2
. Сеттер принимает новое значение площади и обновляет значение radius
на основе формулы sqrt(area / π)
.
Вычисляемые свойства полезны в тех случаях, когда значение свойства должно быть вычислено динамически на основе других значений или когда требуется выполнить какую-либо логику при чтении или записи значения свойства. Они также позволяют скрыть часть реализации от пользователя вашего кода, что способствует лучшей абстракции и сопровождаемости кода.
Однако стоит отметить, что вычисляемые свойства имеют некоторую стоимость в производительности из-за вычисления значения каждый раз при доступе к свойству. Поэтому важно применять их с умом и не злоупотреблять. В некоторых случаях, когда значение свойства может быть предварительно вычислено и не изменяется, лучше использовать хранимые свойства.