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