Junior — Middle
Jaka jest różnica między zmienną statyczną a zwykłą zmienną w programowaniu?
sobes.tech AI
Odpowiedź od AI
Zmienna statyczna różni się od zwykłej tym, że zachowuje swoją wartość między wywołaniami funkcji lub przez cały czas działania programu, podczas gdy zwykła zmienna jest tworzona na nowo przy każdym wywołaniu i niszczona po opuszczeniu zakresu.
Na przykład, w Swift, zmienna statyczna wewnątrz klasy lub struktury należy do samego typu, a nie do instancji, i istnieje w pojedynczej instancji:
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
Tutaj, count to zwykła zmienna instancji, a totalCount to zmienna statyczna, wspólna dla wszystkich instancji klasy.