Junior — Middle
შეგიძლია Swift-ის კლასებში მეთოდების გამოცხადება, რომლებიც ობიექტების მდგომარეობას იცვლიან?
sobes.tech AI
პასუხი AI-სგან
Swift-да, объекттің жағдайын өзгертетін әдістер mutating кілт сөзімен жарияланады, бірақ бұл тек құрылымдар мен тізімдерге (құндылық түрлері) қатысты. Кластар (сілтеме түрлері) үшін, әдістер әдепкі бойынша мысалдың қасиеттерін өзгерте алады, қосымша кілт сөзі қажет емес.
Яғни:
- Кластарда,
mutatingжоқ әдістермен объекттің жағдайын өзгертуге болады. - Құрылымдар мен тізімдерде, қасиеттерді өзгертетін әдістер
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