Ленивые и вычисляемые свойства
Ленивые и вычисляемые свойства
«Ленивые и вычисляемые свойства» — бесплатный урок Swift Academy на CoddyKit. Это урок 1 из 1. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 1 уроков всего.
Введение
Здравствуйте,
В предыдущем уроке мы узнали о хранимых свойствах. Также можно определить ленивые и вычисляемые свойства.
В предыдущем разделе мы рассматривали хранение данных хранимых свойств.
Помимо этого, свойства можно определить как вычисляемые и ленивые.
Ленивые свойства
Ленивые свойства
Если значение свойства не нужно создавать до первого обращения к нему, можно использовать ленивое хранимое свойство.
Если значение свойства не используется до первого обращения к нему, мы можем сделать его ленивым хранимым свойством. Поэтому, если создание объекта требует больших затрат и не нужно сразу, мы отложим его до первого обращения к объекту и избежим лишнего расхода ресурсов и потери производительности. Чтобы сделать хранимое свойство ленивым, нужно добавить модификатор lazy.
class Person {
lazy var name: String = "Name"
var age:Int = 0
private var _lastName:String = ""
func profile() -> String {
return "I'm \(self.name) and I'm \(self.age) years old."
}
}
var p = Person()
p.name = "Coddy"
p.age = 10
print(p.profile())
Вычисляемые свойства
Вычисляемые свойства
Вычисляемые свойства получают входные данные и возвращают новый результат. На первый взгляд может показаться, что они работают как функции. Однако вычисляемые свойства используются с точечной нотацией, как и обычные свойства.
В примере ниже мы лучше поймём разницу между методом и вычисляемым свойством.
Продолжение
Помимо хранимых свойств, классы, структуры и перечисления могут определять вычисляемые свойства, которые фактически не хранят значение.
Вместо этого они предоставляют метод получения и необязательный метод установки для косвенного получения и изменения других свойств и значений.
пример
Если в объявлении свойства определить get { }, это превращает свойство в вычисляемое. При этом у него не может быть начального значения, поскольку при обращении к свойству всегда вызывается объявленная в нём функция get{}.
class Person {
lazy var name: String = "Name"
var age:Int = 0
private var _lastName:String = ""
var lastName:String{
get {
return _lastName
}
set {
_lastName = newValue
}
}
var profile:String{
get{
return "I'm \(self.name) and I'm \(self.age) years old."
}
}
}
var p = Person()
p.name = "Matt"
p.age = 40
/*
Normally, if it was a method, we would call it with the p.profile () method.
However, since it is propery, it was enough to call it with .profile.
*/
p.profileПоздравляем
Поздравляем 🎉
В этом уроке мы изучили ленивые и вычисляемые свойства в Swift.
До встречи на следующем уроке.

Часто задаваемые вопросы
Урок «Ленивые и вычисляемые свойства» бесплатный?
Да — полный текст урока «Ленивые и вычисляемые свойства» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 1 уроков всего.
Чему я научусь в уроке «Ленивые и вычисляемые свойства»?
Ленивые и вычисляемые свойства Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Swift Academy?
Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 1.
Сколько времени занимает урок «Ленивые и вычисляемые свойства»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Swift Academy?
Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.