Junior — Middle
Aký je rozdiel medzi statickou premennou a bežnou premennou v programovaní?
sobes.tech AI
Odpoveď od AI
Statická premenná sa od bežnej líši tým, že si zachováva svoju hodnotu medzi volaniami funkcie alebo počas celého behu programu, zatiaľ čo bežná premenná je pri každom volaní znovu vytvorená a po opustení rozsahu zaniká.
Napríklad, v Swift, statická premenná v rámci triedy alebo štruktúry patrí samotnému typu, nie inštancii, a existuje v jednom výskyte:
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
Tu je count bežná premenná inštancie, a totalCount je statická premenná, zdieľaná všetkými inštanciami triedy.