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 είναι μια στατική μεταβλητή, κοινή σε όλα τα στιγμιότυπα της κλάσης.