Sobes.tech
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.