Junior — Middle
Оё имкон дорад, ки дар Swift методҳое эълон шаванд, ки ҳолати объектҳоро тағир медиҳанд?
sobes.tech AI
Ҷавоб аз AI
Дар Swift, усулҳое, ки ҳолати объектро тағйир медиҳанд, бо калидвожа mutating эълон мешаванд, аммо ин танҳо барои сохторҳо ва enumerationҳо (типы арзишӣ) дахл дорад. Барои синфҳо (типы истинодӣ), усулҳо ба таври стандартӣ метавонанд хусусиятҳои намунаҳоро тағйир диҳанд, бе калидвожаҳои иловагӣ.
Яъне:
- Дар синфҳо, метавон усулҳоро эълон кард, ки ҳолати объектро тағйир медиҳанд, бе
mutating. - Дар сохторҳо ва enumerationҳо, усулҳое, ки хусусиятҳоро тағйир медиҳанд, бояд ҳамчун
mutatingишора карда шаванд.
Масалан, дар синф бо усули тағйирёбанда:
class Counter {
var count = 0
func increment() {
count += 1
}
}
let counter = Counter()
counter.increment()
print(counter.count) // 1
Масалан, дар сохтор бо усули mutating:
struct Counter {
var count = 0
mutating func increment() {
count += 1
}
}
var counter = Counter()
counter.increment()
print(counter.count) // 1