Назад к вопросам
Avito
Junior — Middle
77
Какое отличие есть между статической переменной и обычной переменной в программировании?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Статическая переменная отличается от обычной тем, что она сохраняет своё значение между вызовами функции или в течение всего времени работы программы, в то время как обычная переменная создаётся заново при каждом вызове и уничтожается после выхода из области видимости.
Например, в Swift статическая переменная внутри класса или структуры принадлежит самому типу, а не экземпляру, и существует в единственном экземпляре:
class Counter {
static var totalCount = 0
var count = 0
func increment() {
count += 1
Counter.totalCount += 1
}
}
let a = Counter()
a.increment()
print(a.count) // 1
print(Counter.totalCount) // 1
let b = Counter()
b.increment()
print(b.count) // 1
print(Counter.totalCount) // 2
Здесь count — обычная переменная экземпляра, а totalCount — статическая переменная, общая для всех экземпляров класса.