#swift
#swift
Вопрос:
В документации Swift (Свойства-Наблюдатели свойств / глобальные и локальные переменные) указано
Описанные выше возможности для вычисления и наблюдения свойств также доступны для глобальных переменных и локальных переменных.
Я понимаю, как использовать willSet
и didSet
в классах, но что означает вышесказанное в отношении глобальных и / или локальных переменных?
Обновление: это означает, что вы можете это сделать (если помните, что требуется явный тип):
var someGlobalString: String = "abc" {
willSet {
println("someGlobalString changing from (someGlobalString) to (newValue)")
}
didSet {
println("someGlobalString changed from (oldValue) to (someGlobalString)")
}
}
someGlobalString = "qrs"
и посмотрите это в консоли:
someGlobalString changing from abc to qrs
someGlobalString changed from abc to qrs
Я думаю, что это потрясающе.
Ответ №1:
это означает, что вы также можете использовать observer для локальных / глобальных переменных
func test() {
var totalSteps: Int = 0 {
willSet(newTotalSteps) {
println("About to set totalSteps to (newTotalSteps)")
}
didSet {
if totalSteps > oldValue {
println("Added (totalSteps - oldValue) steps")
}
}
}
totalSteps = 1
}
test()
Комментарии:
1. Спасибо, я не использовал явный тип для своей переменной, и у меня не было проблем с so missed, почему я терпел неудачу (и, конечно, прибегнул к stackoverflow, прежде чем прикладывать много усилий :-)). Должен сказать, что я нахожу это приятной функцией.