Sobes.tech
Junior — Middle

Qual è la differenza tra una variabile statica e una variabile normale nella programmazione?

sobes.tech AI

Risposta dell'AI

Una variabile statica si differenzia da una normale in quanto mantiene il suo valore tra le chiamate di funzione o durante tutta l'esecuzione del programma, mentre una variabile normale viene ricreata ad ogni chiamata e distrutta dopo l'uscita dall'ambito.

Ad esempio, in Swift, una variabile statica all'interno di una classe o struttura appartiene al tipo stesso, non all'istanza, e esiste in un'unica istanza:

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

Qui, count è una variabile di istanza normale, e totalCount è una variabile statica, condivisa da tutte le istanze della classe.