Junior — Middle
Jaký je rozdíl mezi statickou proměnnou a běžnou proměnnou v programování?
sobes.tech AI
Odpověď od AI
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 patří statická proměnná uvnitř třídy nebo struktury 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.