Сохраняемые свойства хранят значение непосредственно в памяти, в то время как вычисляемые свойства вычисляют значение каждый раз при обращении с помощью геттера и опционального сеттера.
Пример сохраняемого свойства:
var name: String = "Alice"
Пример вычисляемого свойства:
var fullName: String {
get { return firstName + " " + lastName }
set { firstName = newValue.components(separatedBy: " ")[0] }
}
var (изменяемые) или let (константные)Сохраняемые свойства лучше всего подходят для:
Вычисляемые свойства лучше всего подходят для:
struct Circle {
var radius: Double // сохраняемое свойство
var area: Double { // вычисляемое свойство
return .pi * radius * radius
}
}
Здесь area всегда автоматически согласовано с radius — нет риска сохранить устаревшее значение.
Вычисляемые свойства выделяют память для хранения рассчитанных значений, как и обычные свойства, но они пересчитываются каждый раз при обращении к ним.
Новый — ещё не проверен сообществом
Вы