Sobes.tech
Junior — Middle

Каква е разликата между статична променлива и обикновена променлива в програмирането?

sobes.tech AI

Отговор от AI

Статичната променлива се различава от обикновената по това, че запазва стойността си между извикванията на функцията или през цялото време на изпълнение на програмата, докато обикновената променлива се създава наново при всяко извикване и се унищожава след излизане от обхвата.

Например, в Swift, статична променлива вътре в клас или структура принадлежи на самия тип, а не на екземпляр, и съществува в единствен екземпляр:

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

Тук count е обикновена променлива на екземпляр, а totalCount е статична променлива, споделена от всички екземпляри на класа.