Junior — Middle
Swift tilida sinflarda obyektlarning holatini o'zgartiradigan metodlarni e'lon qilish mumkinmi?
sobes.tech AI
AIdan javob
Swiftda, ob'ektning holatini o'zgartiradigan metodlar mutating kalit so'zi bilan e'lon qilinadi, ammo bu faqat strukturalar va enumeratsiyalar (qiymat turlari) uchun. Klasslar (referens turlari) uchun, metodlar odatda ob'ektning xususiyatlarini o'zgartira oladi, qo'shimcha kalit so'zga ehtiyoj yo'q.
Ya'ni:
- Klasslarda,
mutatingbo'lmagan metodlar bilan ob'ekt holatini o'zgartirish mumkin. - Strukturalar va enumeratsiyalarda, xususiyatlarni o'zgartiradigan metodlar
mutatingsifatida belgilanishi kerak.
O'zgartiruvchi metod bilan klass misoli:
class Counter {
var count = 0
func increment() {
count += 1
}
}
let counter = Counter()
counter.increment()
print(counter.count) // 1
mutating metod bilan struktur misoli:
struct Counter {
var count = 0
mutating func increment() {
count += 1
}
}
var counter = Counter()
counter.increment()
print(counter.count) // 1