Sobes.tech
Junior — Middle

Dasturlashda statik o'zgaruvchi va oddiy o'zgaruvchi o'rtasidagi farq nima?

sobes.tech AI

AIdan javob

Statik o'zgaruvchi odatiy o'zgaruvchidan farq qiladiki, u funksiya chaqirilmalari orasida yoki dastur ish faoliyati davomida o'z qiymatini saqlaydi, odatiy o'zgaruvchi esa har chaqirilganda yangi yaratiladi va tashqi ko'rinishdan chiqib ketgach yo'q qilinadi.

Masalan, Swiftda, sinf yoki tuzilma ichidagi statik o'zgaruvchi o'ziga tegishli bo'lib, sinf yoki strukturaga emas, faqatgina turga tegishli bo'lib, yagona nusxada mavjud:

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

Bu yerda, count odatiy nusxa o'zgaruvchisi, totalCount esa barcha nusxalar uchun umumiy bo'lgan statik o'zgaruvchidir.