Sobes.tech
Junior — Middle

Milline on vahe staatilise muutuja ja tavalise muutuja vahel programmeerimises?

sobes.tech AI

Vastus AI-lt

Statická proměnná se liší od běžné tím, že si uchovává svou hodnotu mezi voláními funkce nebo po celou dobu běhu programu, zatímco běžná proměnná je při každém volání znovu vytvořena a po opuštění rozsahu zaniká.

Například ve Swiftu, statická proměnná uvnitř třídy nebo struktury patří přímo typu, nikoli instanci, a existuje v jediném výskytu:

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

Zde je count běžná proměnná instance, a totalCount je statická proměnná, sdílená všemi instancemi třídy.